본문 바로가기

프로그래밍/함수형 프로그래밍9

문 스타일(statement style) vs 식 스타일(expression style) 문 스타일(statement style) 결과를 도출하기보다 행위를 정의하는 것은 명령형 프로그래밍(Imperative Programming) 기법의 하나다. 즉, 컴퓨터에게 무엇을 해야 할지 이야기하는 방식으로 소스 코드를 이 관점에서 설명해 보면, 컴퓨터에게 value 값과 0을 비교한 다음 posOrNeg 변수에 값을 할당하라고 지시하고 있다. class Program { static void Main(string[] args) { Console.WriteLine($"Sign of -15 is {GetSign(-15)}"); } static string GetSign(int value) { string posOrNeg; if (value > 0) { posOrNeg = "positive"; } el.. 2024. 3. 4.
C# 함수형으로 구현한 팩토리얼 함수 재귀로 구현한 팩토리얼 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 x * y); return result; } } 2024. 3. 4.
부수 효과(Side Effect)와 참조 투명성(Referential Transparency)에 대해서 부수효과(Side Effect) 함수형 프로그래밍(Functional Programming)의 정의를 설명할 때, 중요하게 언급되는 2가지 개념은 바로 '부수 효과'와 '참조 투명성'이다. 먼저 '부수 효과'는 함수 내의 실행으로 인해 함수 외부가 영향을 받는 것을 의미한다. 함수의 매개 변수의 값이 변경되어, 이로 인해 함수를 사용하는 코드에 영향을 주거나, 함수의 외부 세계인 데이터베이스, 파일 시스템, 네트워크 등으로 데이터 이동이 발생하는 것을 말한다. 함수형 프로그래밍에서 함수는 부수효과를 발생하지 않는다. public static int add(int a, int b) { while (b > 0) { a++; b--; } return a; } 위의 메서드는 함수적이다. 정수형 a, b를 매개 .. 2024. 2. 13.