20

私は Template Haskell を学びたかったのですが、私が見つけたすべてのチュートリアルは、あなたが Lisp を学び、Lisp マクロが何であるかを知っているか、cs 理論の専門用語 (スプライス、準引用符など) を知っていることを前提としています。 .

私は Lisp を 1 行もコード化することはできません (そして、いつかこれを行うつもりですが、今はそれを学ぶ時間がありません)。Haskell は私の最初の関数型言語であり、定期的にコーディングしたり、モナドを使用したり、アプリカティブを使用したり、型システムを理解したりできるようになるまで学習しました...しかし、あまり知りません (学習したいのですが、私は'私はそれにはあまりにも愚かです... :P) その背後にある理論的な cs について。そのため、TH のチュートリアルでよく見かける専門用語は気にしません。

プロのコンピュータ科学者としてではなく、Haskell を最初の関数型言語として学んだ日常の雑用にプログラミングを使用する人として、Haskell をコーディングする人のための TH に関するチュートリアルはありますか? 例として TH を使用するマクロとメタプログラミングの紹介でしょうか?

皆さんありがとう。:)

4

3 に答える 3

12

いいえ、テンプレート Haskellの優れた入門チュートリアルはないと思います。学習するための最良の方法は、例を見ることです。または:

Lisp が要件であるとは思いませんでしたが、ドメイン固有のライブラリのように、学ぶべき用語があります。

于 2011-04-20T02:40:56.353 に答える
7

The best introductory tutorials to Template Haskell I know of are two documents by Bulat Ziganshin. The links from the Haskell Wiki seem to be broken at the moment, however you can access them via archive.org:

于 2011-04-20T21:47:13.740 に答える
2

また、 Tim Sheard と Simon Peyton Jones によるHaskell のテンプレート メタプログラミングの元の論文も参考になるかもしれません。

概要

コンパイル時のメタプログラミングをサポートする、純粋関数型プログラミング言語 Haskell の新しい拡張機能を提案します。このシステムの目的は、コンパイル時のプログラムのアルゴリズム構築をサポートすることです。

コンパイル時にコードを生成する機能により、プログラマーは多型プログラム、マクロのような展開、ユーザー主導の最適化 (インライン化など)、および既存のデータ構造と関数からのサポート データ構造と関数の生成などの機能を実装できます。

私たちの設計は Glasgow Haskell Compiler、ghc で実装されています。

于 2015-03-24T13:19:57.070 に答える