バリー・ジェイは、彼の本の中で大胆な主張をしています-基本的に、プログラムの中核では、すべてがアトミックまたは構成されていると言っています。次に、この構成関係をナビゲートするだけで、物事を簡単に反復、フィルター、更新できます。
これはコンピューター言語のコンピューターサイエンスの新しいフロンティアですか、それともLISPに戻るだけですか?
バリー・ジェイは、彼の本の中で大胆な主張をしています-基本的に、プログラムの中核では、すべてがアトミックまたは構成されていると言っています。次に、この構成関係をナビゲートするだけで、物事を簡単に反復、フィルター、更新できます。
これはコンピューター言語のコンピューターサイエンスの新しいフロンティアですか、それともLISPに戻るだけですか?
回答:
私はバリー・ジェイの最近の作品には詳しくありませんが、彼の古い作品には、タイプが追加情報を提供するため、Lispではできないことが含まれています。
たとえば、Lispデータ構造のサイズを定義するとします。これは、原子について1'S、及びNのリストのためのNのためのサイズ(Y)+原子、より一般的にはサイズ(X) (cons x y)
。
次に、タイプをミックスに入れます。リストのサイズはその長さになります。今、原子のリストのリストのサイズは何ですか?このデータ構造をリスト(その要素がたまたまアトムのリストである)と見なす場合、答えはリストの長さです。このデータ構造に、たまたまリストのリストに格納されているアトムが含まれていると考える場合、答えは要素リストの長さの合計です。
タイプを使用すると、生データのこれら2つのビュー(形状)を区別できます。(リスト)(リストAtom)と(リストリスト)(Atom)を区別できるタイプシステムが必要です。この区別の最も一般的な実装は、(Haskellのような)型クラスです。