忘れてしまわないうちにまとめておきます。 let rec を型推論するときにできるかぎり多相型になるように推論するには、まず変数の依存性グラフを Strongly Connected Components (SCC) に分解することで、より小さい let と let rec のネストに変換を行なってから型推論するということ。また、型シグネチャがすでに付いている式への依存を依存性グラフの辺から取り除くことで、let rec 内を多相型に推論できる可能性を上げることができる。
![let rec の型推論と多相型](https://cdn-ak-scissors.b.st-hatena.com/image/square/e67ae8214d9ded5c54392776fd05ed8b27d2f25a/height=288;version=1;width=512/https%3A%2F%2Fs.togetter.com%2Fogp2%2F89c5c4596f3e962d646a0d3db1052897-1200x630.png)
忘れてしまわないうちにまとめておきます。 let rec を型推論するときにできるかぎり多相型になるように推論するには、まず変数の依存性グラフを Strongly Connected Components (SCC) に分解することで、より小さい let と let rec のネストに変換を行なってから型推論するということ。また、型シグネチャがすでに付いている式への依存を依存性グラフの辺から取り除くことで、let rec 内を多相型に推論できる可能性を上げることができる。
これは何? Types and Programming Languages (The MIT Press)やプログラミング言語の基礎理論 (情報数学講座)を読んだけど、let多相がよく分からない。 ならば、let多相を持った簡単なプログラム言語を作ってみよう。 名前は「Scala + let多相」なんでscalet。別にScalaの拡張というわけではない。 どんな機能があるの? 定数は、intとbool。 scalet> 42 - : int = 42 scalet> true - : bool = true 構文はletとif、あと関数を作るfn。 scalet> if true then 42 else 0 - : int = 42 scalet> let x = 42 in x - : int = 42 scalet> fn x -> x - : (a0 -> a0) = - あと適
概要 近年、自称作曲家・佐村河内守氏と外見の酷似した人物が増加し、彼らと佐村河内氏とを自動的に見分けるシステムの開発が望まれている。一方で、佐村河内氏は作曲時と謝罪会見時で大きく外見的に変化することが知られており、佐村河内氏を見分けるシステムはそのような変化に頑健である必要があるため、実現は容易ではない。本プロジェクトでは、高度なコンピュータ技術を活用し、佐村河内氏を適切に見分けるシステムを開発する。 背景 自称作曲家・佐村河内守氏が世間を賑わせている。佐村河内守氏が引き起こした様々な問題のうちもっとも厄介なものは、「佐村河内守氏にそっくりな人物が多すぎる」ということである。たとえば、ミュージシャンの Revo 氏は知らない人に「あなたのCDはもう二度と買いません」などと言われるなどの風評被害を訴えており、漫画家のみうらじゅん氏についてもタクシー運転手から「佐村河内さんでしょ?」と執拗に問
カスタマイズされたトレンド トレンドは気になる情報を手に入れるための便利な機能です。位置情報やフォローしているユーザーをもとに、カスタマイズされます。 変更する カスタマイズされたトレンドを利用する
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く