whileループ

繰り返しの制御構文としては forループの他にwhileループがあります。 whileは、式1がtrueである間、式2を実行し続けます。
whileループ
while式 := while 式1 do 式2 done
次の章で説明する参照型を用いれば C言語などでよくある次のようなループを記述できます。
1から10まで表示するループ
let a = ref 0 in
while !a < 10 do
	a := !a + 1;
	print_int !a
done;;
しかし、F#ではあまりこういう書き方はしません。 値を変更可能な変数を用いたプログラムは そうでないプログラムに比べて理解しにくく バグを起こしやすいためです。 この例であれば、次のように書くのが簡潔です
F#でのループ処理
List.iter print_int [1..10]
List.iterは2つの引数を取り 1つめには1引数の関数、2つめにはリストをとる関数です。 処理としては [1..10]で1から10までの数字からなるリストを生成し List.iterでそれぞれ数字を引数にしてprint_intを呼び出しています。 F#を含め、関数型言語では、このiter関数のように リストや配列の処理を行う関数が色々と用意されています。 これらを使いこなせるようになれば whileなどのループを使う機会は少なくなると思います。 whileを使うと、計算が終わらない無限ループもかけてしまうので 気をつけないといけません。
無限ループ
while true do print_endline "never finish" done;;
最後に、以下のプログラムをもってwhileループの説明を終わります。
週末まで計算するループ(参考:Expert F#)
	open System;;
	while(DateTime.Now.DayOfWeek<>DayOfWeek.Saturday) do
		print_endline "working";
	done;;
	print_endline "result is 42";	//人生、宇宙、すべての答えでGoogle検索したら