Common Lisp, Scheme Part 14
■ このスレッドは過去ログ倉庫に格納されています
0329デフォルトの名無しさん
2006/01/14(土) 11:59:45>ただ、歴史がある商用のLisp処理系でさえそういうことを重視してないのは
>何故だかは考えて見る必要はあるだろうね。
>単なるインライニングくらいじゃそんなに速くならないんよ。
>型推論して実行時型チェックを減らせるとかなり効果があるけどね。
単なるインライニングならトップレベルを letrecに入れるだけなので
ほとんど変わらないでしょうね。
型推論は全体が letrecに入っていると思えばできるのかも。もしくは Scheme->Ocamlとか。
Ocamlの場合、関数定義のなかに未知のシンボルが現われるとエラーなので
インタラクティブに型推論ができるのかもしれませんが、Schemeだと難しそう。
また、
# let f x = x;;
# let g x y = x + y;;
# let h = ref f;;
# !h = g;;
This expression has type int -> int -> int but is here used with type
int -> int
となりますし。開発中とはいえ手続きの型まで変えることはあまりないと思いますが。
開発言語と実行言語に分けて、実行言語は制限つけて高速コードにコンパイルと
いう風にすれば Schemeが天下とれませんかね?
■ このスレッドは過去ログ倉庫に格納されています