「ATSプログラミング入門」読書会@名古屋 第0回 議事録
- masterq_mogumog
- 1381
- 0
- 0
- 0
ATSは仕様と実装のかい離を防ぐのにプログラムにその検証機能を入れている。「 強調すると、私達はプログラムの検証にプログラマ中心のアプローチをしています。」#ats #nagoya
2015-05-24 13:35:08「ATSは豊かな構文(当社比)と高機能を両立しています。そしてその文法は多くの既存のプログラミング言語より、おそらく***複雑***です。」#ats #nagoya
2015-05-24 13:49:49ATSでは&&や||のと同じ意味でandalsoやorelseも使えます。( ̄∇ ̄)v ドヤッ! 「(....要らなくね?....)」 #ats #nagoya
2015-05-24 13:55:40ATSはC99 に従ったC言語にコンパイルされます。ATSのintやdoubleは同名のC言語のintやdoubleになります。 #ats #nagoya
2015-05-24 14:27:53long longint, unsigned long long intもある。int64とかuint64はC99に無いのでない。ただ、そもそもプリミティブ型がprelude宣言なので自分で追加はできる。#ats #nagoya
2015-05-24 14:36:41C言語埋め込みの%{ .. %} には$や^を付けると宣言場所を仮想的に最初に持って来たり最後に持って来たり出来る。(知らんかった!)#ats #nagoya
2015-05-24 14:42:22タプルは(exp0 , exp1)もしくは@(exp0, exp1)で作れる。(exp0).0や(exp0).1で中身を参照できる。もちろん数字がタプルの要素数以上になると型エラー。 #ats #nagoya
2015-05-24 14:54:22ボックス化タプル '( exp0, exp1)はヒープに確保したタプルへの参照。なので、使う時には-DATS_MEMALLOC_LIBCオプションがないと型エラー。 #ats #nagoya
2015-05-24 15:00:08if, then, elseはキーワードです。else節が省略された時はelse ()が補完される。 #ats #nagoya
2015-05-24 15:11:31val () = expを使うのよくある。C言語のように暗黙的に戻り値を無視できないのでよい。でも val _ = expのようにされると無力。逐次式はvoid強制なので、意外といいのでは? #ats #nagoya
2015-05-24 15:20:474重スラッシュはファイル終端までコメント。「これはファイルに実行結果とか入れられるから便利(小川先生談)」#ats #nagoya
2015-05-24 15:22:20