F #은 대부분의 "다른 고전적인 함수형 프로그래밍 언어"보다 우수 할 수 있습니다.
기능적 프로그래밍 패러다임 : 이미 .NET을 알고 있기 때문에 F 번호에서 두 개의 유용한 물건을 따기 동안, 당신은 완벽하게 모든 .NET 지식을 활용할 수 있습니다. 즉, FP 스타일로 프로그래밍하는 방법입니다. 모든 언어로 사용할 수 있습니다. 나는 종종 C# 코드에서 FP로 배우기 때문에, 소프트웨어를 작성하는 데 훨씬 유지 보수 가능하고 재사용 가능한 방법이라고 생각하기 때문에.
하나의 언어의 프로그래밍 프로그래밍 구문. F #은 OCAML과 매우 유사하며, ML 계열은 FP 언어의 3 가지 주요 방언 중 하나를 구성합니다. 나머지 두 가지는 Miranda 가족 (하스켈이 주요 현대 대표자 임)과 LISP 가족 (Common Lisp and Scheme이 두 명의 큰 담당자 인 곳)입니다.
F #에서는 F # 유형과 .NET 유형을 구분하는 데 도움이 될 수 있습니다. 레코드, 튜플, 차별화 된 유니온은 (거의) 순수하게 F # 일이며 거의 모든 기능 언어에서 사용됩니다. 당신이 FP를 배우고 싶다면 이것들을 많이 사용하십시오. 클래스, 구조체 및 인터페이스도 여기에 있지만 .NET 개념입니다. 필요에 따라 그것들을 사용하되, 관용적 인 F # 대신 "구식의 구문으로"C#을 작성하지 않도록 일반적으로는 피하십시오.
하스켈에서 정말로 놓치게 될 것들은 진정한 순수성 (큰 거래는 아니지만), 기본적으로 게으른 평가 (큰 변화) 및 유형 클래스입니다. F #에서 게으른 평가를 할 수는 있지만 명시 적으로 Lazy <> 클래스를 사용해야합니다. 사방에 게으른 평가를하는 것은 하스켈에서 정말 독특하고 강력한 것 중 하나지만 엄격한 FP 개념은 아닙니다. 타입 클래스는 매우 강력하지만 대부분의 실제 상황에서는 클래스가 없어도 얻을 수 있습니다. 그것들은 단지 보일러 판과 반복을 줄이는 더 높은 수준의 추상화 일뿐입니다.
진정한 순도는 일반적으로 더 학문적입니다. 확실한 장점이 있지만, 이미 .NET에 익숙하고 기술이 썩 좋지 않다면, FP 사고 방식을 완전히 사용하기 전까지는 해결하기가 쉽지 않을 것입니다.
FP의 많은 아이디어를 다양한 언어로 사용할 수 있습니다. 질문은 "FP를 내 두개골에 찔러 넣지 않을 것"입니다. 문제는 FP 습관이나 나쁜 습관을 조장하는 것입니다. –