タグ

ブックマーク / xenophobia.hatenablog.com (3)

  • 型レベルFizzBuzz(及び、type familyにおけるガードの書き方) - claustrophobia

    型レベルFizzBuzzどっかで見た気がするが、今書けるかというと絶対無理 — xenophobia (@xenophobia__) 2014, 5月 2 ↑みたいなこと呟いたら「そんな難しいか?」という意見が見受けられ、言われてみれば確かにそんな言うほど難しくないのでは、と思い書いてみました。最近Haskell書いていない気がするし。*1 なんですが、そもそも"型レベルFizzBuzz"って何でしょうか。初めに想像したのは (N1, N2, ...は型レベル自然数として) *Main> :t Proxy :: Proxy (XFizzBuzz N1) Proxy :: Proxy (XFizzBuzz N1) :: Proxy ('Number ('S Zero)) *Main> :t Proxy :: Proxy (XFizzBuzz N3) Proxy :: Proxy (XFizz

    型レベルFizzBuzz(及び、type familyにおけるガードの書き方) - claustrophobia
  • OchaCamlに触ってみた。 - claustrophobia

    PPL2014( http://www.fos.kuis.kyoto-u.ac.jp/ppl2014/ )に参加して来ました。 去年に引続きの参加(但し去年は発表なしで見に行っただけ)だったのですが、去年も今年も(主にお茶女勢による)限定継続の発表を聞いては「限定継続ってなんだっけ」と思ってはググったり、教えてもらったりしていましたので、いい加減ちょっとは学んでおこうと思い、OchaCamlを入れて遊んでみました。 公式ページ通りにインストールしてみます(OSはUbuntu)。tarを落として cd ~/Project/OchaCaml tar xpfvz cl75unix.tar.gz tar xpfvz OchaCaml.tar.gz patch -p0 < OchaCaml/OchaCaml.diff cd cl75/src make configure と、ここでエラー。 gcc:

    OchaCamlに触ってみた。 - claustrophobia
  • Egisonのmatcherの定義(基本編) - claustrophobia

    第1回 Egison Dev Meeting(http://egison.pira.jp/workshops/1-dev.html)に行ってきました。 Egison自体まだまだ色々と発展途上の言語なので、「この仕様はどうなのか」「ここはこの書き方でいいのか」「これからの展望は」などEgisonの今後に関する多くの意見があり、有意義なDev Meetingでした。 ただ、これは以前行われたEgisonのワークショップなんかでも思ったことですが、新しい概念を導入するときのコード例が複雑すぎる気がしました。そこで、その中でも特に重要かつ面白い"matcher"の定義方法についてチュートリアル的なものを書いてみます。この記事はその基編で、matcherという概念自体の説明及び定義文のシンタックスに関する説明に重きを置いています。あとでもっとmatcherのすごさが伝わる応用編を書く予定です。予定

    Egisonのmatcherの定義(基本編) - claustrophobia
  • 1