思考錯誤

すべてはどうでもよくなる

「プログラミングの基礎」読みほぐし①

プログラミングの基礎 (サイエンス社)

プログラミングの基礎 (Computer Science Library)

プログラミングの基礎 (Computer Science Library)

 

 

この本では Ocaml というとーってもマイナーなプログラミング言語を使用しています。

 

 

第一章 はじめに

コマンド

スタート。対話型インタプリタ?が立ち上がります。

$ ocaml

 

終了。ctrl +  c とか q とか esc じゃなくてこれです。

#quit ;;

 

第2章 基本的なデータ

整数

他のプログラミング言語とほぼ同じです。

が、余りを出す場合は '%' ではなく 'mod' を使用します。こんなふうにね。

8 mod 3 => 2

 

実数

実数とは、無理数有理数を合わせたもののこと。

Ocaml では少数点を使用して実数をあらわします。

 

また、実数の計算では、整数用の '+' や '-' などは使用できません。

そのかわり実数専用の命令が用意されており、加算は '+.'、減算は '-.' といったように、後ろに実数の象徴であるピリオドをつけた命令を使用します。

 

少数点以下が0の場合は、その0を書く必要はありませんが、実数であることを明示するために小数点を書く必要があります。

 

べき乗

べき乗は '**' であらわす。実数計算のみで使用できる。

 

無限大

実数の中で特殊な値として無限大があります。

Ocaml では infinity で無限大をあらわします。

マイナス無限大は neg_infinity となります。

 

文字列

ダブルコーテーションで囲んであげます。 "ほげ" 

シングルコーテーションだと怒られます。なぜだろう。文字コードが関係しているのか。

3: deprecated: ISO-Latin1 characters in identifiers

 

'^' を使えば文字列をつなげることができます。

こんなふうにね。

"関数" ^ "型" ^ "言語" => 関数型言語 

 

真偽値

他のプログラミング言語と変わらないでしょう。

真偽値の型は bool というそうですね。

 

また、真偽値には論理演算が定義されています。

Ocaml には3つの論理演算があります。

  1. && 「かつ」
  2. || 「または」
  3. not 「否定」

四則演算には 、「-」よりも「*」や「/」が先に計算されるといった優先順位がありますが、じつは論理演算にも優先順位があります。

not 「否定」 > && 「かつ」> || 「または」の順に優先順位が高くなっています。

たとえば、

not (false || ((not false) && (not falsse))) ;;

は、

bool = false

と、なります。

 

とはいえ、真偽値に直接 true や false と書くことはまれで、通常は様々な条件が成り立つかどうかを調べるために使います。

 

比較演算子

'<' とか '>=' とか。

すべてのデータに対して使うことができます。

とはいえ、違う型のデータを比較しようとすると怒られちゃいます。

 

ちなみに、比較演算子を使って true と false を調べると、

true の方が大きいことになります。

 

 

キリが良いのでこのくらいで切り上げます。

それでは。