はじめに
このWebサイトはプログラミング言語F#(えふしゃーぷ)に関する入門サイトです。
このサイトは、プログラミングが初めての人でも読めることを目指して
出来るだけ背景知識を仮定しない内容を目指しています。
ただ、管理人は専門家ではないため、ある程度プログラミング経験がある方は
本サイトを見るよりも
MSDNのMicrosoftのF#ドキュメントからたどれる情報などを
参考にしてください。
本サイトの内容はF#のバージョン6.0に準拠しています。
本サイトでの表記、シンタックス
シンタックスとは構文のことで、コードを書く際のルールのことです。
F#には、
軽量構文、lightシンタックス(Lightweight Syntax)と
冗語構文(Normal Syntax)の二種類があります。
参考。こちらには両方の構文の違いがまとめられています。
軽量構文はF#のデフォルトです。
以前本サイトではいくつかの理由から軽量構文は使用していませんでしたが、
冗語構文と軽量構文の違いが明らかな場合を除き
冗語構文と軽量構文の両方を表記することにしました。
軽量構文を使わない場合は
以前はソースコードの先頭に
#indent "off"と記述する(f#4.1 spec 15.1.1)必要がありましたが
現在はこの宣言はml(F#の元になった言語の一つ)互換のためにあり
特に宣言しなくても冗語構文は有効です。
軽量構文とは混ぜて使用することが可能です。
軽量構文はF#のデフォルトで
.fs, .fsi, .fsx and .fsscriptでおわるファイル名の場合
自動的にONになります(F#4.1 spec 19.4)
(.fsが基本的なF#の拡張子です)
また、冗語構文は
.ml ,.mli.で終わるファイル名の場合、
自動的にONになります(F#4.1 spec 19.4)
(.mlや.mliはOCamlで使われる拡張子です)
また、サイト内の説明文で上の(18.1.4))のような表記を使っていますが
これはF#の仕様書(2022/05時点で最新版は4.1で以降の更新はRFCとなっている)での該当するセクション名を表しています。
用語
用語について、適切な日本語訳が思いつかない場合は
無理に日本語に訳さず、そのまま英語で記述しています。
作成動機
何かがやりたい、という理由で
趣味のプログラミングをテーマにして作成し始めたサイトです。
サイト作成時点ではほとんどF#に関する情報がなかったため
F#の普及を願って作り始めました。
管理人は大学院にて計算機科学を専攻はしておりましたが
関数型言語は専門ではなく
変なことも言ってるかもしれませんが、ご容赦ください。
参考資料
過去に作成したページは下記情報を主に参考にしています。
・Expert F#
・Foundations of F#
・プログラミング in OCaml
基本的には以下のサイトを参考にします
F#4.1仕様書(latest)
F#4.1以降の追加部分のRFC
ecma 335
Microsoftのサイト内ページや、そこにある資料
開発者ブログ
その他、トップページを除いては構成の関係上
予告無く各記事のリンク先URLが変更される可能性がありますので
ご了承ください。
また、間違い等あれば連絡頂けると幸いです。