言語は、1文字でひとつの単語をあらわす。構文はF#に寄せる。ということで、
10
は
let x = 10 ;
となる。
中間言語としては
10
これを
:let: “apple” “=” “10”
に直したうえで
let apple = 10
にすれば簡単でよい。
F#の構文と1対1になるとは限らないので
10OKNG
の場合は
if apple = 10 then OK else NG
になるが、
“if” “apple” “=” “10” “then” “OK” “else” “NG”
から直すことになる。この場合は、then と else がはいっているからうまい例ではないが。
あとで変更
文の扱い
言語では、単語の区切りに空白を用いない。できれば、改行も使わないようにしたいののだが、あまりいい思いつきがないので、
10
20
という2つの文を1行に書きたいときは
1020
のようにする。ちょうどC言語の「;」と同じ働きをする。
は空行を示している。
ブロックの開始と終了
F#の場合はブロックの開始と終了をインデントで表すが、言語にはインデントというかそもそもタブとか空白とかいう概念がないので、なんらかのブロック(スコープ)が必要になる。
1020
こんな感じに で囲うのがいいのだが、どうせならば対になるようにしたい。sh の if と fi みたいに男女を入れかえることは可能なのか?