GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • メインページ
  • コミュニティ・ポータル
  • 最近の出来事
  • 新しいページ
  • 最近の更新
  • おまかせ表示
  • 練習用ページ
  • アップロード (ウィキメディア・コモンズ)
  • 特別ページ
  • ヘルプ
  • 利用案内
  • 井戸端
  • お知らせ
  • バグの報告

This view

  • Original page
  • New address

GeezerVison is showing ja.wikipedia.org — F Sharp - Wikipedia

本来の表記は「F#」です。この記事に付けられたページ名は技術的な制限または記事名の制約により不正確なものとなっています。
この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。 出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方)
出典検索?: "F Sharp" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL
(2015年5月)
F#
F#
F#のロゴ
パラダイム 関数型プログラミング、命令型プログラミング、オブジェクト指向プログラミング、メタプログラミング、リフレクション、並行計算 ウィキデータを編集
登場時期 2005年 (2005)
開発者 マイクロソフト、F Sharp Software Foundation ウィキデータを編集
最新リリース 11[1] ウィキデータを編集/ 2026年11月10日
型付け 強い静的型付け
影響を受けた言語 ML、OCaml、C Sharp、Erlang、Haskell、Python、Scala ウィキデータを編集
影響を与えた言語 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#コンパイラが移植されているため、macOSやLinuxなどでも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#で書かれたソフトウェア

  • IronJS

脚注

  1. ↑ "https://learn.microsoft.com/en-us/dotnet/fsharp/whats-new/fsharp-11"。
  2. ↑ “F# at Microsoft Research”. Microsoft. 2016年8月26日閲覧。
  3. 1 2 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。 

関連項目

  • C#
  • OCaml
  • 関数型プログラミング言語

外部リンク

  • The F# Software Foundation
  • Microsoft Research - F#
  • Try F#
  • Don Syme's WebLog on F# and Other Research Projects
.NET
アーキテクチャ
  • 共通言語基盤
  • アセンブリ
  • メタデータ
  • マネージコード
  • 基本クラスライブラリ
  • .NET Standard
  • 仮想実行システム
  • Roslyn
  • Native AOT
共通言語基盤
  • 共通言語ランタイム
  • 共通型システム
  • 共通中間言語
  • 動的言語ランタイム
言語
  • C#
  • Visual Basic .NET
  • F#
  • PowerShell
  • C++/CLI (マネージ拡張)
  • †J#
  • JScript .NET
  • IronPython
  • IronRuby
  • Nemerle
  • Boo
  • PiechPie / †Phalanger
  • †Cω
  • †Spec#
パッケージマネージャ
  • NuGet
  • myget
  • ProGet
関連技術
  • Azure
  • MAUI
  • †Xamarin
  • Blazor
  • Aspire
  • Uno Platform
  • †UWP
  • Avalonia UI
  • WPF
  • WCF
  • WF
  • WCS
  • Windows Forms
  • ASP.NET
  • ADO.NET
  • ASP.NET MVC Framework
  • Entity Framework
  • ClickOnce
  • XAML
  • †Silverlight
  • LINQ
  • †.NET Remoting
  • MSBuild
  • XSP
  • ML.NET
  • Windows UI Library(Windows App SDK)
その他のCLI実装
  • †.NET Core
  • .NET Framework
  • Mono
  • シェアードソースCLI
  • Portable.NET
  • .NET nanoFramework
  • .NET Micro Framework
  • .NET Compact Framework
  • †Microsoft XNA
組織
  • .NET Foundation
  • Microsoft
  • Xamarin
開発環境
  • Visual Studio
  • Visual Studio Code
  • JetBrains Rider
  • MonoDevelop / Xamarin Studio
  • SharpDevelop
その他
  • async/await
  • MVVM
  • ReactiveX
カテゴリ カテゴリ
コンピュータ・プログラミング言語
低水準言語
  • 機械語
  • アセンブリ言語
高水準言語
1950年代
  • FORTRAN
  • ALGOL
  • RPG
  • COBOL
1960年代
  • LISP
  • CPL
  • BASIC
  • PL/I
  • APL
  • BCPL
  • Simula
  • LOGO
  • B
1970年代
  • Forth
  • Pascal
  • C
  • Prolog
  • Smalltalk
  • Scheme
  • ML
  • AWK
  • Ada
  • Modula-2
1980年代
  • C++
  • Objective-C
  • Common Lisp
  • Eiffel
  • Erlang
  • Esterel
  • Lustre
  • Perl
  • Mathematica
  • J
1990年代
  • Python
  • Tcl
  • Haskell
  • Visual Basic
  • Ruby
  • Lua
  • Delphi
  • Java
  • ECMAScript (JavaScript)
  • PHP
  • OCaml
  • SuperCollider
  • R
2000年代
  • C#
  • Clojure
  • D
  • F#
  • Go
  • Nim
  • Scala
  • VB.NET
2010年代
  • Ceylon
  • Crystal
  • Dart
  • Elixir
  • Elm
  • Hack
  • Julia
  • Kotlin
  • Raku
  • Rust
  • Swift
  • TypeScript
  • V言語
  • Zig
2020年代
  • Carbon
  • Gleam
  • Mojo
  • Poron
架空の言語
  • 擬似言語
  • CASL
  • CAP-X
  • 年表
  • パラダイム
  • 一覧
「https://ja.wikipedia.org/w/index.php?title=F_Sharp&oldid=111456158」から取得
カテゴリ:
  • .NET
  • プログラミング言語
  • 関数型プログラミング言語
  • オブジェクト指向言語
  • マイクロソフトのプログラミング言語
  • マイクロソフトのフリーソフト
隠しカテゴリ:
  • 記事名の制約を受けている記事
  • 出典を必要とする記事/2015年5月
  • 外部リンクがリンク切れになっている記事/2020年3月
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.