최근 수정 시각 : 2025-04-15 18:14:19

F#


[include(틀:링크시 주의, 링크=F\ 또는 # 또는 F#)]
[[프로그래밍 언어|'''프로그래밍 언어
{{{#!wiki style="font-family: Times New Roman, serif; display: inline;"
]]
{{{#!wiki style="min-height: calc(1.5em + 5px); margin: 0 -10px -5px"
{{{#!wiki style="display: inline-table; min-width: 40%; min-height: calc(1.5em + 5px)"
{{{#!folding [ 목록 ]
{{{#!wiki style="margin: -5px -1px"
<colbgcolor=royalblue><colcolor=#fff> ※ 나무위키에 등재된 프로그래밍 언어 목록
AActionScript · AdaT · AgdaTP · ALGOLT · ApexT · APL · awk · AssemblyT
BBASIC
C파일:C언어 로고.svg CT · 파일:C C#T · 파일:C++ 로고.svg C++T · CarbonT · 파일:clojure_logo.png ClojureS · COBOLT · CoffeeScript · Common LispS · CrystalT
D파일:external/upload.wikimedia.org/D_programming_language_logo.png DT · 파일:Dart 심볼.svg DartT
EElixir · 파일:Elm_logo.svg.png elmT · Erlang
F파일:fsharp-logo.png F#T · Factor · 파일:fennel-logo.svg FennelS · 파일:forth.png Forth · FortranT
GGNU Octave · 파일:Go 로고.svg GoT · Groovy
H파일:Haskell 로고 심볼.svg HaskellT · HolyCT · Haxe
I
J파일:Java 로고.svg JavaT · 파일:JavaScript 로고.svg JavaScript · 파일:julia-dots.svg Julia
K파일:Kotlin 심볼.svg KotlinT · Krait
LLeanTP · 파일:LISP_logo.svg LISPS · 파일:Lua 로고.svg Lua
MMATLAB · MaxV · MojoT · Moonlight
N파일:Nim 왕관 로고.svg NimT · 파일:Nix 로고.svg Nix
OOberonT · Objective-CT · 파일:ocaml.svg OCamlT
PPascalT · Perl · 파일:PHP 로고.svg PHP · Processing · Prolog · 파일:Python 심볼.svg Python
QQ#T · QML
R파일:R 로고.svg R · 파일:racket-logo.svg RacketS · Raku · ReasonMLT · RocqTP · 파일:Ruby 로고.svg Ruby · 파일:Rust 로고.svg파일:Rust 로고 화이트.svg RustT
SSAS · 파일:Scala 로고.png ScalaT · SchemeS · 파일:스크래치(교육 플랫폼) 로고.svg ScratchV · sed · Shell Script · Smalltalk · 파일:Swift 심볼 배경.svg SwiftT
T파일:Typescript_logo_2020.svg TypeScriptT
UUdon
VVisual Basic · Visual Basic .NET · Visual Basic for Applications · vvvvV
WWave
XXSharp
Y
ZZenScript · 파일:Zig 로고마크.svg ZigT
한글누리 · V · 씨앗 · 약속 · 파일:엔트리 아이콘.svg 엔트리V · 창조
T: 정적 타입 프로그래밍 언어 · P: 증명 보조 언어 · S: LISP 방언 및 S-표현식 기반 언어 · V: 시각적 프로그래밍 언어 }}}}}}}}}{{{#!wiki style="display: inline-table; min-width: 40%; min-height: calc(1.5em + 5px)"
{{{#!folding [ 순위 ]
{{{#!wiki style="margin: -5px -1px -10px"
{{{#!wiki style="min-height: calc(1.5em + 5px); margin: 0 -10px -5px"
{{{#!wiki style="display: inline-table; min-width: 25%; min-height: calc(1.5em + 5px)"
{{{#!folding [ IEEE Spectrum 2025 ]
{{{#!wiki style="margin: -5px -1px"
<tablewidth=100%><tablebgcolor=transparent><colbgcolor=#11a500><colcolor=#fff> 스펙트럼 부문 상위 10개 프로그래밍 언어 <colbgcolor=#ff1100><colcolor=#fff> 직업 부문 상위 10개 프로그래밍 언어
1 Python 1 Python
2 Java 2 SQL
3 C++ 3 Java
4 SQL 4 JavaScript
5 C# 5 TypeScript
6 JavaScript 6 C#
7 TypeScript 7 C++
8 C 8 HTML
9 Shell 9 Go
10 Go 10 Shell }}}}}}}}}{{{#!wiki style="display: inline-table; min-width: 25%; min-height: calc(1.5em + 5px)"
{{{#!folding [ Stack Overflow 2025 ]
{{{#!wiki style="margin: -5px -1px"
<colbgcolor=#ffa500><colcolor=#fff> 2025년 Stackoverflow 설문조사 상위 25개 프로그래밍 언어
1 JavaScript <colbgcolor=#ffa500><colcolor=#fff> 14 Rust
2 HTML & CSS 15 Kotlin
3 SQL 16 Lua
4 Python 17 어셈블리어
5 Bash/Shell 18 Ruby
6 TypeScript 19 Dart
7 Java 20 Swift
8 C# 21 R
9 C++ 22 Groovy
10 PowerShell 23 Visual Basic
11 C 24 VBA
12 PHP 25 MATLAB
13 Go }}}}}}}}}{{{#!wiki style="display: inline-table; min-width: 25%; min-height: calc(1.5em + 5px)"
{{{#!folding [ TIOBE 2025 ]
{{{#!wiki style="margin: -5px -1px"
<colbgcolor=#2777c2><colcolor=#fff> 2025년 10월 TIOBE 검색어 점유율 상위 20개 프로그래밍 언어
1 Python <colbgcolor=#2777c2><colcolor=#fff> 11 Fortran
2 C 12 Perl
3 C++ 13 R
4 Java 14 PHP
5 C# 15 Assembly language
6 JavaScript 16 Rust
7 Visual Basic 17 MATLAB
8 Go 18 Scratch
9 Delphi / Object Pascal 19 Ada
10 SQL 20 Kotlin }}}}}}}}}{{{#!wiki style="display: inline-table; min-width: 25%; min-height: calc(1.5em + 5px)"
{{{#!folding [ PYPL 2025 ]
{{{#!wiki style="margin: -5px -1px -10px"
<colbgcolor=green><colcolor=#fff> 2025년 11월 PYPL 검색어 점유율 상위 20개 프로그래밍 언어
1 Python <colbgcolor=green><colcolor=#fff> 11 Ada
2 Java 12 TypeScript
3 C++ 13 MATLAB
4 Objective-C 14 Kotlin
5 R 15 PowerShell
6 JavaScript 16 Go
7 C# 17 Dart
8 Swift 18 Ruby
9 PHP 19 Lua
10 Rust 20 VBA }}}}}}}}}}}} }}}}}}}}}}}}
실행 방식 · 분류 · 언어 목록(분류:프로그래밍 언어 문법) · 언어별 예제 · 틀:프로그래밍 언어 문법 · 틀:난해한 프로그래밍 언어


||<tablealign=center><tablebordercolor=transparent><tablebgcolor=transparent> 파일:Microsoft 로고.svg파일:Microsoft 로고 화이트.svg||
{{{#!wiki style="margin:0 -10px -5px; min-height:calc(1.5em + 5px)"
[ 펼치기 · 접기 ]
||<-2><tablewidth=100%><tablebgcolor=transparent><colbgcolor=#393939,#737373><colcolor=#fff>제품군||
하드​웨어Surface · Xbox · HoloLens · PixelSense · Zune · Pluton · IVAS
소프트​웨어Windows · Office · Edge · Media Player · Hyper-V · Defender · Visual Studio Code · Visual Studio · Windows Terminal · Microsoft Store · Xbox App · PowerToys · Internet Explorer · MS-DOS · Windows Movie Maker · Autoruns · Clipchamp
서비스Microsoft Azure · OneDrive · Microsoft Copilot · Bing · LinkedIn · Microsoft Docs · Skype · MSN · 정품인증 · Xbox Game Pass · Xbox Cloud Gaming · Xbox network · SwiftKey
관련 기술ASF · ASP · Blazor · COM · DCOM · DirectX · 파일 시스템(FAT · NTFS · ReFS) · 언어 서버 프로토콜 · MFC · .NET(.NET Core · .NET Standard · C# · F# · Visual Basic .NET · Q#) · 라이브러리(Windows Forms · WPF · UWP · Xamarin · .NET MAUI · ASP.NET · ML.NET · XNA) · OLE · Silverlight · Visual Basic · VBA · WASAPI · Windows 커널 · Windows 디자인 · Windows API · Windows Runtime(UWP · WinUI) · WMA · WMV · 하복 엔진 · SAMI · PowerShell · Windows Modern Standby · Nearby Sharing
산하 계열사 및 사업부GitHub · .NET Foundation · Microsoft Gaming · LinkedIn
관련 인물빌 게이츠(은퇴) · 폴 앨런(은퇴) · 스티브 발머(퇴사) · 게이브 뉴웰(퇴사) · 마이크 이바라(퇴사)
사티아 나델라 · 필 스펜서 · 브래드 스미스
기타제니맥스 미디어 인수 · 액티비전 블리자드 인수 · 시작 메뉴 · 빌 게이츠의 굴욕
관련 틀365 제품군 · 하드웨어 제품군 · Surface 제품군 · Windows 제품군
}}}
F#
파일:fsharp-logo.png
<colbgcolor=#fff,#1f2023><colcolor=#378BBA,#30B9DB> 개발 <colbgcolor=#fff,#1f2023>Microsoft
버전 9(2024년 11월 업데이트)
웹사이트 F# 가이드

1. 개요2. 역사3. 특징4. 학습


printfn "Hello, World"

1. 개요

ML 계열 언어인 OCaml에 기반하여 Microsoft Research(MSR)와 연구원 Don Syme이 개발한 함수형 프로그래밍 언어.

2. 역사

.NET Framework와 CLR이 구현된 이후 연구되기 시작하여 2005년에 최초의 안정판이 나온 젊은 언어로, C#과 마찬가지로 처음부터 CLR을 위해 개발되었다.

그래봐야 사실은 아무도 모르고 넘어갈 수 있었을 신생 함수형 언어였지만, MSR의 엄청난 편애를 받고 있어서 Visual Studio의 기본 언어 중 하나로 들어가 있다. 덕분에 많은 사람들이 "Visual F#은 뭐하는 놈이야?" 하는 의문을 가지게 만든다. 발표 직후에는 윈도우에서만 쓸 수 있었지만 2.0 이후 리눅스, OS X에서도 쓸 수 있게 되었고, 3.0 이후엔 자바스크립트와 함께 CUDA, OpenCL 환경에서도 쓸 수 있게 되었다.

3. 특징

문법적인 기본 특징은 OCaml과 유사한 하이브리드적 성질을 들 수 있다. 즉 선언적인 함수형언어의 기본에 절차적인 코드를 추가할 수 있고, 객체지향적 요소도 쓸 수 있다. 이렇게 보면 구성요소가 많고 복잡해야 할 것 같지만 적은 구성요소로 이리저리 돌려서 다 해결하는 식이라 새로 시작하는 입장에서는 상당히 덩치가 커진 C# 5.0보다 F# 3.0이 쉬울 수 있다. 또한 힌들리 밀너 타입추론을 하므로 타입 안정성이 있고, 타입 선언을 생략 가능한 경우가 많다.

F#은 비교적 초기에 개발진의 연구에 의해 비동기 프로그래밍 모델이 언어에 통합되었고, 이를 활용한 병행, 병렬 응용계층이 풍부하게 구현되어 있다. 비동기, 병행, 병렬 처리라는 부분은 엄청나게 발전되어 있어서 MSR에 잡혀있을 외계인들이 걱정되는 수준.

4. 학습

  • TryF# - 단순히 코드와 설명을 보여주는 수준을 넘어서 F#용 웹 IDE를 제공해주고 있다. 이 IDE의 완성도도 상당한 것으로 유명하다. 덤으로 MSR의 F# 빠심을 볼 수 있다. PC 환경에서만 이용 가능하다.
  • F# on Exercism