多相関数を第一級で取り扱う

Posted on 金 06 12月 2019 in プログラミング言語 • Tagged with Haskell, GHC拡張, GHC, 多相関数

今回は,GHC拡張の一つ RankNTypes の紹介をしようと思う.もうちょっとちゃんとまとめたのをいつか Haskell-jp かどっかに投稿したいと思ってるんだが,時間が (さっさと書け).

さて, Haskell のプログラミングにおいて多相関数はかなり重要な役割を持つ.しかしながら,標準の範囲では多相関数自体を第一級の値として扱うことはできない.私たちに許されるのは,多相関数を定義することだけだ.まあ,それだけでもかなり有用なんだけど,多相関数を第一級で扱えると,色々プログラミングの幅が広がる.今回は,多相関数を第一級として扱うというのはどういうことか,そしてそれをするにはどうすればいいか,そうすることで何がうれしいのかを簡単に触れられたらと思っている.

多相関数を第一級で扱うとはどういうことか …


Continue reading

Rust のジェネリック関数はどうコンパイルされるのか

Posted on 月 24 6月 2019 in プログラミング言語 • Tagged with Rust, 多相関数, ジェネリクス, トレイト

最近, (特に境界条件を伴った) 多相関数が言語ごとにどういうコードを吐くかが気になったので, Haskell とコードの生成方針が異なるという噂の Rust を見てみることにした.その覚え書き.なお, Rust 普段使いではないので間違ってるかもしれないのと,情報が古いかもしれない.

https://rust-lang.github.io/rustc-guide/about-this-guide.html が主な参考文献.使った rustc は,

  • rustc: 1 …

Continue reading