コンテンツにスキップ

Lazy K

出典: フリー百科事典『ウィキペディア(Wikipedia)』

2022年12月28日 (水) 14:35; Syunsyunminmin (会話 | 投稿記録) による版 (カテゴリ間移動:Category:関数型言語 から Category:関数型プログラミング言語 カテゴリ改名に伴うカテゴリ変更。(Bot作業依頼参照) using Cat-a-lot)(日時は個人設定で未設定ならUTC

(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
Lazy K
パラダイム 純粋関数型言語
型付け なし
主な処理系 lazy
影響を受けた言語 Unlambda
ウェブサイト [1]
拡張子 .lazy
テンプレートを表示

Lazy K(れいじーけー)は組み込み関数が3つしかない、純粋関数型言語である。似た言語として、同じような表記をする、非純粋関数型言語であるUnlambdaがある。

概要

[編集]

純粋関数型言語として、チューリング完全でありながら、絶対必要なエッセンスだけを抜き出したプログラミング言語である。遅延評価を行う。使用するにも、処理系を実装するにも、コンビネータ論理の知識が必要である。

標準入力をプログラムである関数の引数として受け取る。ただし、標準入力は1バイトごとのチャーチ数英語版スコットエンコードされたリストとしてエンコードされ、出力も同様に1バイトごとのチャーチ数のスコットエンコードされたリストとなる。

Lazy K にて Unlambda を実装した場合、UnlambdaUnlambda を実装した場合に比べて約1/10のソースサイズで収まる。

組み込み関数

[編集]

Haskell の表記法を用いる。

  • I x = x
  • K x y = x
  • S x y z = (x z) (y z)

なお、ISK を用いて I = SKK と表せる。

Iota 記法では、i=λx.xSK=S(SI(KS))(KK) を唯一の組み込み関数として使用する。

表記法

[編集]

ソースコードの表記方法として、4種類用意されている。それらを混在させてコーディングすることができる。

外部リンク

[編集]