Top
Photo Drawings Software Writing Reading Memo Study Profile Bookmark 
Amethyst DumLambda PetitLambda Yamanba JSharp JFlat OOPS yash KumonoIto ML Toys 

petit-lambda

ラムダ計算のインタプリタ。

特徴

  • ラムダ計算の簡約過程を1ステップづつトレースできる。
  • トレース出力書式を選択できる。とくにLatex形式の出力が可能。

実行例

バッチ形式でLatexのソースファイルを出力するサンプルです。

入力ファイル(tracelatex.lmd)
- latexファイルを出力するサンプル

- 余計な応答を表示させない。
set response off

- latexフォーマットでトレース出力する。
set tracer latex

- トレースの出力先となるファイル名を指定する。既存のファイルに「追加」されるので注意。
set traceoutput tracelatex.tex

- applicativeオーダで簡約する。
set order applicative

-> \documentclass{jarticle}
-> \title{Latex出力サンプル}
-> \author{大和谷潔}
-> \begin{document}
-> \maketitle

def One = /x./y.x y
def Times = /l./r./x.l (r x)

-> \subsection*{\(Times One One\)の簡約過程}
reduce Times One One

-> \end{document}

実行
  bash$ ./petitlambda tracelatex.lmd

出力(tracelatex.tex)
\documentclass{jarticle}
\title{Latex出力サンプル}
\author{大和谷潔}
\begin{document}
\maketitle
\subsection*{\(Times One One\)の簡約過程}
\begin{eqnarray*}
&&\underline{Times}~One~One\\ 
&& =~(\lambda l.\lambda r.\lambda x.l~(r~x))~\underline{One}~One\\ 
&& =~(\lambda l.\lambda r.\lambda x.l~(r~x))~(\lambda x.\underline{\lambda y.x~y})~One\\ 
&& \rightarrow_{\eta} \underline{(\lambda l.\lambda r.\lambda x.l~(r~x))~(\lambda x.x)}~One\\ 
&& \rightarrow_{\beta} (\lambda r.\lambda x.\underline{(\lambda x.x)~(r~x)})~One\\ 
&& \rightarrow_{\beta} (\lambda r.\underline{\lambda x.r~x})~One\\ 
&& \rightarrow_{\eta} (\lambda r.r)~\underline{One}\\ 
&& =~(\lambda r.r)~(\lambda x.\underline{\lambda y.x~y})\\ 
&& \rightarrow_{\eta} \underline{(\lambda r.r)~(\lambda x.x)}\\ 
&& \rightarrow_{\beta} \lambda x.x
 \end{eqnarray*}
\end{document}
上記の出力をタイプ セットした結果

Package

PetitLambda-1.2.tar.gz

Install

Cygwinとsolaris-sparcについては、実行ファイルがパッケージに含まれています。

その他のプラットフォームの方は、コマンドラインでつぎを実行してください。

install

実行方法

ドキュメントを参照してください。

ドキュメント

usersguide.ps
usersguide.pdf