반응형
재귀로 구현한 팩토리얼
using System;
class Program
{
static void Main(string[] args)
{
var input = Console.ReadLine();
var num = Int32.Parse(input);
Console.WriteLine($"{num}! result: {Factorial(num)}");
}
static long Factorial(int n)
{
if (n <= 1)
{
return 1;
}
return n * Factorial(n - 1);
}
}
함수형으로 구현한 팩토리얼
Linq에서 지원하는 Range와 Aggregate를 이용하면 함수형으로 팩토리얼을 구현할 수 있다.
using System;
using System.Linq;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Insert Factorial Number (Functional Approach)");
var input = Console.ReadLine();
var num = Int32.Parse(input);
Console.WriteLine($"{num}! result: {NewFactorial(num)}");
}
static int NewFactorial(int num)
{
var arr = Enumerable.Range(1, num);
var result = arr.Aggregate((x, y) => x * y);
return result;
}
}
'프로그래밍 > 함수형 프로그래밍' 카테고리의 다른 글
함수형 프로그래밍 관련 개념 정리 (0) | 2024.03.22 |
---|---|
재귀 vs 꼬리 재귀 (1) | 2024.03.15 |
C#으로 함수형 프로그래밍을 해보자 (0) | 2024.03.14 |
문 스타일(statement style) vs 식 스타일(expression style) (0) | 2024.03.04 |
부수 효과(Side Effect)와 참조 투명성(Referential Transparency)에 대해서 (0) | 2024.02.13 |
댓글