タグ

2021年9月6日のブックマーク (2件)

  • SML#プロジェクト

    SML#はオープンソースの関数型プログラミング言語です。Standard MLと互換性を保ちながら、C言語やデータベースとの連携など実用上重要な機能を備えています。詳しくは「SML#について」をご覧ください。 val puts = _import "puts" : string -> int fun f x = ignore (puts (#b x)) val _ = f {a = "Hi", b = "Hello"} val _ = f {b = "World", c = "SML#"} 最近のニュース SML#の教科書が出ました 2021年4月15日 「SML#で始める実践MLプログラミング」が発売されました。 もっと読む... GitHubへの移行が完了しました 2021年4月7日 SML#プロジェクトGitHubへの移行が完了しました。 もっと読む... SML# 4.0.0 リ

    youz
    youz 2021/09/06
  • コンパイル技法: パターンマッチ

    書では関数型言語をはじめとして多くの言語にあるパターンマッチをコンパイルする方法を紹介します。パターンマッチはシンプルに条件分岐の連鎖にコンパイルすることもできますが、よく研究された手法を使えば驚くほど効率的なコードを生成できるようになります。そのような手法を2種類紹介します。 パターンマッチはデータ型に照合しそのデータを取り出すものです。例えばRustであれば match opt { Some(x) => f(x), None => g()} のように Option 型への照合などに使えます。書の前半ではパターンマッチの挙動や使い方などを学びます。挙動の確認にはプログラミング言語Standard MLを使い、一部Cのコードも使います。その後Common LispやJavaなどの他の言語でのパターンマッチの状況を確認します。後半ではパターンマッチのコンパイル技法について紹介します。パタ

    コンパイル技法: パターンマッチ