[[분류:함수형 언어]] [include(틀:링크시 주의, 링크=[[F\\#]] 또는 [[F##]] 또는 [[F#]])] [include(틀:Microsoft)] [include(틀:프로그래밍 언어)] ||<-2> '''{{{+3 F#}}}''' || ||<-2> [[파일:fsharp-logo.png|width=200]] || || '''개발''' ||[[Microsoft]] || || '''버전''' ||{{{+1 '''7'''}}}^^(2022년 11월 업데이트)^^ || || '''웹사이트''' ||[[https://learn.microsoft.com/ko-kr/dotnet/fsharp/|F# 가이드]] || [목차] [clearfix] == 개요 == {{{#!syntax csharp printfn "Hello, World!" }}} ML 계열 언어인 [[OCaml]]에 기반하여 [[Microsoft Research]](MSR)와 연구원 Don Syme이 개발한 함수형 [[프로그래밍 언어]]. [[Microsoft .NET#Framework|.NET Framework]]와 CLR이 구현된 이후 연구되기 시작하여 2005년에 최초의 안정판이 나온 젊은 언어로, [[C\#]]과 마찬가지로 처음부터 CLR을 위해 개발되었다. 그래봐야 사실은 아무도 모르고 넘어갈 수 있었을 신생 함수형 언어였지만, MSR의 엄청난 편애를 받고 있어서 [[Visual Studio]]의 기본 언어 중 하나로 들어가 있다. 덕분에 많은 사람들이 "Visual F#은 뭐하는 놈이야?" 하는 의문을 가지게 만든다. 발표 직후에는 [[Microsoft Windows|윈도우]]에서만 쓸 수 있었지만 2.0 이후 [[Linux|리눅스]], [[OS X]]에서도 쓸 수 있게 되었고, 3.0 이후엔 [[자바스크립트]]와 함께 [[CUDA]], [[OpenCL]] 환경에서도 쓸 수 있게 되었다. 문법적인 기본 특징은 OCaml과 유사한 하이브리드적 성질을 들 수 있다. 즉 선언적인 함수형언어의 기본에 절차적인 코드를 추가할 수 있고, 객체지향적 요소도 쓸 수 있다. 이렇게 보면 구성요소가 많고 복잡해야할 것 같지만 적은 구성요소로 이리저리 돌려서 다 해결하는 식이라 새로 시작하는 입장에서는 상당히 덩치가 커진 [[C\#]] 5.0보다 F# 3.0이 쉬울 수 있다. 또한 힌들리 밀너 타입추론을 하므로 타입 안정성이 있고, 타입 선언을 생략 가능한 경우가 많다. F#은 비교적 초기에 개발진의 연구에 의해 비동기 프로그래밍 모델이 언어에 통합되었고, 이를 활용한 병행, 병렬 응용계층이 풍부하게 구현되어 있다. 비동기, 병행, 병렬 처리라는 부분은 엄청나게 발전되어 있어서 MSR에 잡혀있을 외계인들이 걱정되는 수준. 언어 소개 및 학습 사이트인 [[http://try.fsharp.org|TryF#]]은 단순히 코드와 설명을 보여주는 수준을 넘어서 F#용 웹 [[IDE]]를 제공해주고 있다. 이 IDE의 완성도도 상당한 것으로 유명하다. --덤으로 MSR의 F# 빠심을 볼 수 있다.--