「ATSプログラミング入門」読書会@名古屋 第0回 議事録
- masterq_mogumog
- 1388
- 0
- 0
- 0
再帰関数を作る時はfunキーワードで関数を作る。fnと区別できる。誰もfn使ってないらしい。ヾ(ーー )ォィ #ats #nagoya
2015-05-24 15:41:18説明の都合上(配列の説明をまだしていないので)エイト・クイーンパズルの章のプログラムはタプルを使っている。(配列は依存型の話と絡むので) #ats #nagoya
2015-05-24 15:59:23相互再帰をローカルジャンプにコンパイルしたい場合は、fnx .. and .. を使う。(そんな機能あったのか・・・(゚o゚) #ats #nagoya
2015-05-24 16:20:03関数の型アノーテーションに:<cloref1>と書くとそれはクロージャーになる。ATSではクロージャーあまり使わない。(スタックとかテンプレートとか別の手法があるから) #ats #nagoya
2015-05-24 16:32:49クロージャー指定を明示的にしない場合、環境の変数を自動的に引数に追加して一見クロージャーのような関数内関数をメモリアロケーションなしで書ける(場合もある)。 #ats #nagoya
2015-05-24 16:35:39rtfind を多項式の関数 lam x => x * x - x + 110 に呼び出すと 11 が返ります。 #ウソダ #ats #nagoya
2015-05-24 16:42:05g0i2uはintからunsigned intへのキャスト。 普通はstaload UN = "prelude/SATS/unsafe.stats"として$UN.cast{uint}と書くのが便利。 #ats #nagoya
2015-05-24 16:55:35パターンマッチもある。タプル、レコード、コンストラクタなどでパターンマッチできる。_でなんでもマッチできる。 #ats #nagoya
2015-05-24 17:09:07datatype宣言時のof ()は省略できる。ただし、パターンマッチの時にはコンストラクタの後に()が必要なので留意。 #ats #nagoya
2015-05-24 17:18:39case+と書くと網羅性チェック(コンパイルエラー)もしてくれる。caseだけだと警告になる。case-だと網羅性チェックなし。 #ats #nagoya
2015-05-24 17:20:53val+の網羅性チェックはパターンマッチの形だけ見るのではなく、(依存型のように)文脈まで考えてチェックしてみれる模様。(すごい!) #ats #nagoya
2015-05-24 17:37:40次回やるべきこと: 関数テンプレート,参照,配列,総称テンプレート実装,特殊テンプレート実装,抽象型 だけを読んで後は楽しい依存型に突入しましょう! #ats #nagoya
2015-05-24 17:46:47BLUISH CODER: 安全なプログラミング言語を使って heartbleed を防ぐには github.com/jats-ug/transl… #ats #nagoya
2015-05-24 18:00:27次回を企画しました! #ats #nagoya / 「ATSプログラミング入門」読書会@名古屋 第1回 - 関数型IoTプログラミング | Doorkeeper fpiot.doorkeeper.jp/events/25744
2015-05-24 19:19:09