IT이야기

수행하기 위해 만들어진 F # 언어

cyworld 2021. 4. 12. 23:15
반응형

수행하기 위해 만들어진 F # 언어는 무엇입니까?


F # 프로그래밍 언어를 사용하여 응용 프로그램을 개발하기위한 리소스가 점점 더 늘어나고 있다는 것을 알게되었고 F # 언어가 무엇을 달성하기 위해 만들어 졌는지에 대한 질문이 떠 올랐습니다. 데스크톱, 모바일 장치, 웹 응용 프로그램과 같은 특정 플랫폼을 위해 만들어 졌습니까? 또한 현재 .NET 애플리케이션 개발에 사용할 수있는 다른 프로그래밍 언어에서 사용할 수없는 기능도 포함되어 있습니까? 또한 VB 또는 C #을 사용할 수있는 것처럼 F #을 사용하여 데스크톱, 모바일 및 웹용 응용 프로그램을 만들 수 있습니까? 또한 함수형 프로그래밍의 작동 방식을 더 잘 이해하기 위해 교차 검사에 사용할 수있는 F #과 유사한 다른 언어가 있습니까?


수행하기 위해 만들어진 F # 언어는 무엇입니까?

F # 연구 프로젝트는 .Net 플랫폼에서 실행되는 OCaml 언어의 변형을 만들려고했습니다. MSR Cambridge, SML.NET의 관련 프로젝트는 Standard ML에 대해 동일한 작업을 수행했습니다. (OCaml 및 표준 ML은 모두 ML 언어의 변형입니다.) 이에 대한 동기는 다음과 같습니다.

  1. 그것을 보여줄 수 있습니다.
  2. 그것을 보여주는 과학 논문을 출판 할 수 있습니다.
  3. ML은 엄청나게 멋지 기 때문입니다.

이것은 F # 제품이 .Net 플랫폼을위한 범용 프로그래밍 언어라는 사실에주의를 분산시키지 않아야합니다. F #의 이점은 모든 도메인으로 확장됩니다. F #을 더 빠르게 채택하는 사용자가있을 수 있습니다 (과학 및 금융 프로그래밍이 자주 언급 됨). 실제 이유는 이러한 조직이 새로운 기술 (소규모 팀, 똑똑한 사람, 소수의 관리자)을 채택 할 수 있기 때문입니다.

데스크톱, 모바일 장치, 웹 응용 프로그램과 같은 특정 플랫폼을 위해 만들어 졌습니까?

아니.

또한 현재 .NET 응용 프로그램 개발에 사용할 수있는 다른 프로그래밍 언어에서 사용할 수없는 기능이 포함되어 있습니까?

예. 여기에는 다음이 포함됩니다.

  • 대수 데이터 유형
  • 패턴 매칭
  • 유형 추론
  • 간결한 구문
  • 시퀀스 표현식
  • 비동기 워크 플로우
  • 측정 단위

또한 VB 또는 C #을 사용할 수있는 것처럼 F #을 사용하여 데스크톱, 모바일 및 웹용 응용 프로그램을 만들 수 있습니까?

예,하지만 VS2010의 도구는 불완전합니다. 특히, WPF 코드 숨김 및 Winforms 디자이너와 같이 코드 생성과 관련된 모든 것은 잘 지원되지 않습니다. 이것은 실제로 문제가되지 않을 수 있습니다. 예를 들어 MVVM을 사용하는 WPF는 상당히 잘 작동합니다.

또한 함수형 프로그래밍의 작동 방식을 더 잘 이해하기 위해 교차 검사에 사용할 수있는 F #과 유사한 다른 언어가 있습니까?

예. 이것들을보세요 :

  • 표준 ML
  • OCaml
  • Haskell
  • 클로저

[편집 : VS2010의 도구에 대한 주석 추가.]


F #은 함수형 프로그래밍 언어를 .NET으로 가져 오기 위해 만들어졌습니다.

특정 플랫폼을위한 것이 아닙니다. Microsoft Research 에 따르면 "데이터 지향 프로그래밍, 병렬 I / O 프로그래밍, 병렬 CPU 프로그래밍, 스크립팅 및 알고리즘 개발에서 특별한 강점을 가지고 있습니다." F #은 특히 금융 및 과학 응용 프로그램에 사용됩니다.

C #은 Windows를 활용하기 위해 Java를 확장하는 것이 제한 되었기 때문에 Microsoft가 최신 C와 유사한 언어를 갖도록 만들어졌습니다. 구성 요소 지향 언어로 설계되었으며 웹에 특화되지 않았습니다.

F #은 주로 기능적 언어 인 반면 C #과 VB는 모두 주로 개체 지향적입니다.

또한보십시오:


불변성에 대한 초점과 같은 함수형 프로그래밍의 아이디어를 활용하려고 할 때, 꼬리 끝 재귀를 사용하는 것을 포함하여 이것에서 올 수있는 최적화를 시도 할 때 코드의 가독성을 향상시키고 향상시킬 수 있음을 알게 될 것입니다. 유지 보수성.

그러나 F #과 같은 언어를 사용하면 도메인 별 언어를 만들 때 언어 지향 프로그래밍 ( http://en.wikipedia.org/wiki/Language-oriented_programming )을 더 쉽게 수행 할 수 있습니다. 방정식을 작성하거나 분자를 모델링하기 위해 익숙한 용어를 사용하는 화학자를위한 작은 언어를 작성할 수 있으며 프로그램은이를 구문 분석하고 예상되는 동작에 반응 할 수 있습니다.

C #은 객체 지향적이기 때문에 F #에서는 '.'를 건너 뛸 수 있기 때문에 언어를 사용하기가 너무 간단 해지기 어렵습니다. 메서드 호출에, 그래서 Jacob buys 100 shares of IBM함수 호출의 일련 때문이다.

이전에 언급 한 불변성과 같은 일부 구성으로 인해 동시성이 더 간단 해 지므로 F #에서 볼 수있는 일부 기능은 아마도 C #을 개선하는 데 도움이 될 것입니다.

따라서 F #은 MS가 과학 프로그래밍 및 모델링과 같은 영역에 진입하는 데 도움이됩니다. 이러한 영역과 언어의 다른 이점으로 인해 C #보다 낫기 때문입니다.

그러나 .NET 어셈블리를 사용할 수도 있으며 코드를 잘 작성하면 F #에서 수학 집약적 인 부분을 수행하고 C # 또는 VB.NET에서 함수를 호출하도록 할 수 있으므로 각 작업에 가장 적합한 언어를 사용할 수 있습니다.

최신 정보:

몇 가지 새로운 의견을 읽은 후 문제가 된 한 가지 영역은 멀티 코어 CPU를 활용하는 좋은 코드를 작성하는 방법입니다. 그래서 함수형 프로그래밍은 F #, Scala, Clojure에서 볼 수 있듯이 몇 가지 이름을 지정하는 것처럼 대중화되었으며, MS는 프로그래머가 새로운 칩 아키텍처를 더 잘 활용할 수 있도록 돕기 위해 여기에 들어갔습니다.


내 질문에 대한 몇 가지 리소스를 찾았습니다.

F #을 선택하는 이유는 무엇입니까?

F #은 어떻게 사용됩니까?

F #을 사용해야하는 9 가지 이유

F #을 사용해야하는 이유는 무엇입니까?

When does it make sense to use F# over C# or VB.NET

From what it looks like there is no clear answer as is usually when trying to determine to use a particular language. Although I have never used functional programming before from some of the examples I have seen it can be extremely useful. It seems like another great option when developing .NET applications.


If you watch this video by Don Syme maybe you'll get some of the answers you're looking for.

update After watching the video it would seem that he created it because at the time (1998) he didn't like Java or what he saw of C# but liked functional programming like OCaml. Since he worked for MS research he wrote F#.

I imagine the genisis of a number of languages that target the cli (A#, ronPython, IronRuby, etc) are similar.

참조 URL : https://stackoverflow.com/questions/5642481/what-is-the-f-language-created-to-accomplish

반응형