Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

F Sharpとは? わかりやすく解説

F Sharp

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/11/28 02:55 UTC 版)

F#
F#のロゴ
パラダイム 関数型プログラミング命令型プログラミングオブジェクト指向プログラミングメタプログラミングリフレクション並行計算 
登場時期 2005年 (19年前) (2005)
開発者 マイクロソフト、F Sharp Software Foundation 
最新リリース 9.0/ 2024年11月12日 (16日前) (2024-11-12)[1]
型付け 強い静的型付け
影響を受けた言語 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!"

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

let rec factorial n =
    match n with
    | 0 -> 1
    | _ -> n * factorial (n - 1)

再帰関数の例

(* int リストの要素を再帰的にプリントする *)
let rec printList lst =
    match lst with 
    | [] -> ()
    | h :: t -> 
        printf "%d\n" h
        printList t
 
(* 上と同様だが任意の型の要素をプリントする *)
let rec printList2 l =
    match l with
    | []     -> ()
    | h :: t -> printfn "%A" h
                printList2 t
 
(* match の代りに function 式を利用する *)
let rec printList3 = function
    | []     -> ()
    | h :: t -> printfn "%A" h
                printList3 t
 
(* 高階関数を利用する *)
let printlist4 lst = List.iter (printfn "%A") lst
(* フィボナッチ数列 *)
let rec fib n =
    match n with
    | 0 | 1 -> n
    | _ -> fib (n - 1) + fib (n - 2)
 
(* 遅延再帰シーケンス式によるフィボナッチ数列 *)
let rec fibs = Seq.cache <| seq { yield! [1; 1]                                  
                                  for x, y in Seq.zip fibs <| Seq.skip 1 fibs -> x + y }
 
(* 遅延無限シーケンスによるフィボナッチ数列 *)
let fibSeq = Seq.unfold (fun (a,b) -> Some(a+b, (b, a+b))) (1,1)
 
(* 偶数のフィボナッチ数をプリントする *)
[1 .. 10]
|> List.map     fib
|> List.filter  (fun n -> (n % 2) = 0)
|> printList
 
(* 同じことをシーケンス式を利用する *)
[ for i in 1..10 do
    let r = fib i
    if r % 2 = 0 then yield r ]
|> printList

Windows フォームを使用した例

(* フォームの作成 *)
open System.Windows.Forms
let form = new Form(Visible=true, TopMost=true, Text="Welcome to F#")
(* フォーム テキストを決める *)
let x = 3 + (4 * 5)
do form.Text <- (if x = 23 then "Correct!" else "incorrect")

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

脚注

  1. ^ RNDr. Tomáš Grošup, Ph.D. (2024年11月14日). “Nullable Reference Types in F# 9”. .NET Blog. 2024年11月28日閲覧。
  2. ^ F# at Microsoft Research”. Microsoft. 2016年8月26日閲覧。
  3. ^ a b Chris 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 by IDG. 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 

関連項目

外部リンク


「F Sharp」の例文・使い方・用例・文例

Weblio日本語例文用例辞書はプログラムで機械的に例文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。



固有名詞の分類


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「F Sharp」の関連用語

F Sharpのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



F Sharpのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのF Sharp (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
Tanaka Corpusのコンテンツは、特に明示されている場合を除いて、次のライセンスに従います:
 Creative Commons Attribution (CC-BY) 2.0 France.
この対訳データはCreative Commons Attribution 3.0 Unportedでライセンスされています。
浜島書店 Catch a Wave
Copyright © 1995-2025 Hamajima Shoten, Publishers. All rights reserved.
株式会社ベネッセコーポレーション株式会社ベネッセコーポレーション
Copyright © Benesse Holdings, Inc. All rights reserved.
研究社研究社
Copyright (c) 1995-2025 Kenkyusha Co., Ltd. All rights reserved.
日本語WordNet日本語WordNet
日本語ワードネット1.1版 (C) 情報通信研究機構, 2009-2010 License All rights reserved.
WordNet 3.0 Copyright 2006 by Princeton University. All rights reserved. License
日外アソシエーツ株式会社日外アソシエーツ株式会社
Copyright (C) 1994- Nichigai Associates, Inc., All rights reserved.
「斎藤和英大辞典」斎藤秀三郎著、日外アソシエーツ辞書編集部編
EDRDGEDRDG
This page uses the JMdict dictionary files. These files are the property of the Electronic Dictionary Research and Development Group, and are used in conformance with the Group's licence.

©2025 GRAS Group, Inc.RSS