Movatterモバイル変換


[0]ホーム

URL:


コンテンツにスキップ
Wikipedia
検索

F Sharp

出典: フリー百科事典『ウィキペディア(Wikipedia)』
曖昧さ回避この項目では、プログラミング言語について説明しています。音名のF♯については「嬰ヘ」をご覧ください。
本来の表記は「F#」です。この記事に付けられたページ名は技術的な制限または記事名の制約により不正確なものとなっています。
この記事は検証可能参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。このテンプレートの使い方
出典検索?"F Sharp" – ニュース ·書籍 ·スカラー ·CiNii ·J-STAGE ·NDL ·dlib.jp ·ジャパンサーチ ·TWL
(2015年5月)
F#
F#
F#のロゴ
パラダイム関数型プログラミング命令型プログラミングオブジェクト指向プログラミングメタプログラミングリフレクション並行計算 ウィキデータを編集
登場時期2005年 (20年前) (2005)
開発者マイクロソフト、F Sharp Software Foundation ウィキデータを編集
最新リリース10.0[1] ウィキデータを編集/2025年11月11日 (10日前)
型付け強い静的型付け
影響を受けた言語MLOCamlC SharpErlangHaskellPythonScala ウィキデータを編集
影響を与えた言語F*
プラットフォームクロスプラットフォーム ウィキデータを編集
ライセンスApache License ウィキデータを編集
ウェブサイトfsharp.orgウィキデータを編集
拡張子fs、fsi、fsx、fsscript ウィキデータを編集
テンプレートを表示

F#(エフ シャープ)はマイクロソフトが開発した.NET向けのマルチパラダイムプログラミング言語である。Visual Studio 2010より標準開発言語として追加された。

概要

[編集]

2002年からマイクロソフトリサーチドン・サイム英語版 (:Don Syme) ら[2]によってOCamlをベースに開発が始められた。

OCamlから多くの要素を引き継いだ関数型オブジェクト指向マルチパラダイムである[3]型安全であり[3]型推論の機能をもつ[4]。ただし、オーバーロードをサポートしているため、OCamlのもつ型推論の完全性を失っている。C#Visual Basic .NETなどの.NET言語と相互運用性があり[5]、.NETクラスライブラリの利用・開発が可能であり[6]MonoおよびXamarinを利用したAndroidアプリケーション開発もサポートされている[7]。以前はSilverlightを利用したWindows Phone 7のアプリケーション開発もサポートされていた。

F#のFはFunctional programming language(関数型プログラミング言語)およびSystem Fが由来[8]である。

F#の開発環境はVisual Studioの有償版製品(あるいは無償のCommunityエディション)にVisual F#として含まれているほか、Expressエディションで利用可能な無償ツールの配布もされている[9][10][11][12]。Visual F# Tools 4.1でRoslynをサポートするようになった。また、Mono.NET Core[13][14]環境向けにもF#コンパイラが移植されているため、macOSLinuxなどでもF#プログラムの開発および実行ができる。

OCaml互換の標準ライブラリを備えており、F#とOCamlのどちらでもコンパイルできるコードを記述することも可能である。しかしクラスの構文などはF#とOCamlで異なっている。

構文

[編集]

OCamlと互換性のある冗語構文 (:verbose syntax) と、Pythonのようなインデント(オフサイドルール)による軽量構文 (:lightweight syntax) の二種類の構文を利用できる。標準では軽量構文が有効になっている。

[編集]

Hello world

[編集]
(* これはコメント *)// 1行コメント。(* Hello world プログラム *)printfn"Hello World!"

再帰による階乗のプログラム

[編集]
letrecfactorialn=matchnwith|0->1|_->n*factorial(n-1)

再帰関数の例

[編集]
(* int リストの要素を再帰的にプリントする *)letrecprintListlst=matchlstwith|[]->()|h::t->printf"%d\n"hprintListt(* 上と同様だが任意の型の要素をプリントする *)letrecprintList2l=matchlwith|[]->()|h::t->printfn"%A"hprintList2t(* match の代りに function 式を利用する *)letrecprintList3=function|[]->()|h::t->printfn"%A"hprintList3t(* 高階関数を利用する *)letprintlist4lst=List.iter(printfn"%A")lst
(* フィボナッチ数列 *)letrecfibn=matchnwith|0|1->n|_->fib(n-1)+fib(n-2)(* 遅延再帰シーケンス式によるフィボナッチ数列 *)letrecfibs=Seq.cache<|seq{yield![1;1]forx,yinSeq.zipfibs<|Seq.skip1fibs->x+y}(* 遅延無限シーケンスによるフィボナッチ数列 *)letfibSeq=Seq.unfold(fun(a,b)->Some(a+b,(b,a+b)))(1,1)(* 偶数のフィボナッチ数をプリントする *)[1..10]|>List.mapfib|>List.filter(funn->(n%2)=0)|>printList(* 同じことをシーケンス式を利用する *)[foriin1..10doletr=fibiifr%2=0thenyieldr]|>printList

Windows フォームを使用した例

[編集]
(* フォームの作成 *)openSystem.Windows.Formsletform=newForm(Visible=true,TopMost=true,Text="Welcome to F#")(* フォーム テキストを決める *)letx=3+(4*5)doform.Text<-(ifx=23then"Correct!"else"incorrect")

F#で書かれたソフトウェア

[編集]

脚注

[編集]
[脚注の使い方]
  1. ^https://learn.microsoft.com/en-us/dotnet/fsharp/whats-new/fsharp-10。
  2. ^F# at Microsoft Research”. Microsoft. 2016年8月26日閲覧。
  3. ^abChris Smith 2008, p. VII, まえがき.
  4. ^Chris Smith 2008, p. 23, 2章 基本事項.
  5. ^Chris Smith 2008, p. 383, 付録 B F#の相互運用性.
  6. ^Chris Smith 2008, p. 8, 1章 F#の紹介.
  7. ^Xamarin.Android - Xamarin”. Microsoft. 2019年9月15日閲覧。
  8. ^The A-Z of programming languages: F#”. en:Network World byIDG. 2016年8月26日閲覧。
  9. ^Download Microsoft F#, August 2010 Community Technology Preview from Official Microsoft Download Center”. Microsoft. 2015年5月28日閲覧。[リンク切れ]
  10. ^Download F# Tools for Visual Studio Express 2012 for Web from Official Microsoft Download Center”. Microsoft. 2015年5月28日閲覧。
  11. ^Announcing Visual F# Tools 3.1.1, with support for Desktop and Web express - Visual F# Tools Team Blog - Site Home - MSDN Blogs”. Microsoft. 2015年5月28日閲覧。
  12. ^Announcing the release of Visual F# Tools 3.1.2 - Visual F# Tools Team Blog - Site Home - MSDN Blogs”. Microsoft. 2015年5月28日閲覧。
  13. ^Use F# on Linux”. F# Software Foundation. 2019年9月15日閲覧。
  14. ^Get started with F# with command-line tools”. Microsoft. 2019年9月15日閲覧。

参考文献

[編集]
  • Chris Smith 著、鈴木幸敏 訳、頃末和義 編『プログラミングF#』(初版)オライリー・ジャパン、2008年8月。ISBN 978-4-87311-466-8 

関連項目

[編集]

外部リンク

[編集]
アーキテクチャ
共通言語基盤
言語
パッケージマネージャ
関連技術
その他のCLI実装
組織
開発環境
その他
カテゴリカテゴリ
コンピュータ・プログラミング言語
低水準言語
高水準言語
1950年代
1960年代
1970年代
1980年代
1990年代
2000年代
2010年代
2020年代
架空の言語
https://ja.wikipedia.org/w/index.php?title=F_Sharp&oldid=107308833」から取得
カテゴリ:
隠しカテゴリ:

[8]ページ先頭

©2009-2025 Movatter.jp