パターン計算は言語の一歩前進を表しているのでしょうか、それともLISPに戻っているのでしょうか?


11

バリー・ジェイは、彼の本の中で大胆な主張をしています-基本的に、プログラムの中核では、すべてがアトミックまたは構成されていると言っています。次に、この構成関係をナビゲートするだけで、物事を簡単に反復、フィルター、更新できます。

これはコンピューター言語のコンピューターサイエンスの新しいフロンティアですか、それともLISPに戻るだけですか?


13
Lispに戻ることは一歩前進です。
シェーン

4
これは明確に定義された質問ではありません。コミュニティWikiにする必要があります。
チャールズスチュワート

@Shaneに同意するが、タイプと一連の最新のライブラリが必要だと思う
-hawkeye

回答:


6

Jayの最近の仕事の主な利点の1つは、データ構造を走査してmapなどの操作を実行するために記述する必要のある定型コードを減らすことです。パターン計算により、すべてのデータ構造に対してトラバーサルコードを1回記述し、独自のデータ構造に適用できます。これにより、必要なコードの量は確かに減りますが、他の方法では作成できなかったプログラムを作成することはできません。確かにこの作品には多くの興味深いアイデアがありますが、実際に機能することはまだ実証されていません。


6

私はバリー・ジェイの最近の作品には詳しくありませんが、彼の古い作品には、タイプが追加情報を提供するため、Lispではできないこと含まれています。

たとえば、Lispデータ構造のサイズを定義するとします。これは、原子について1'S、及びNのリストのためのNのためのサイズ(Y)+原子、より一般的にはサイズ(X) (cons x y)

次に、タイプをミックスに入れます。リストのサイズはその長さになります。今、原子のリストのリストのサイズは何ですか?このデータ構造をリスト(その要素がたまたまアトムのリストである)と見なす場合、答えはリストの長さです。このデータ構造に、たまたまリストのリストに格納されているアトムが含まれていると考える場合、答えは要素リストの長さの合計です。

タイプを使用すると、生データのこれら2つのビュー(形状)を区別できます。(リスト)(リストAtom)と(リストリスト)(Atom)を区別できるタイプシステムが必要です。この区別の最も一般的な実装は、(Haskellのような)型クラスです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.