「Lazy K」の版間の差分

提供: miniwiki
移動先:案内検索
(1版 をインポートしました)
 
11行目: 11行目:
 
|影響を与えた言語 =
 
|影響を与えた言語 =
 
|拡張子 = <code>.lazy</code>
 
|拡張子 = <code>.lazy</code>
|ウェブサイト = [http://homepages.cwi.nl/~tromp/cl/lazy-k.html]
+
|ウェブサイト = http://homepages.cwi.nl/~tromp/cl/lazy-k.html
 
}}
 
}}
  
 
{{プログラミング言語}}
 
{{プログラミング言語}}
{{lang|en|'''Lazy K'''}}(れいじーけー)は組み込み関数が3つしかない、純粋[[関数型言語]]である。似た言語として、同じような表記をする、非純粋関数型言語である{{lang|en|[[Unlambda]]}}がある。
+
{{lang|en|'''Lazy K'''}}(れいじーけー)
 +
 
 +
組み込み関数が3つしかない、純粋[[関数型言語]]である。似た言語として、同じような表記をする、非純粋関数型言語である{{lang|en|[[Unlambda]]}}がある。
  
 
== 概要 ==
 
== 概要 ==
23行目: 25行目:
  
 
{{lang|en|Lazy K}} にて {{lang|en|Unlambda}} を実装した場合、{{lang|en|Unlambda}} で {{lang|en|Unlambda}} を実装した場合に比べて約1/10のソースサイズで収まる。
 
{{lang|en|Lazy K}} にて {{lang|en|Unlambda}} を実装した場合、{{lang|en|Unlambda}} で {{lang|en|Unlambda}} を実装した場合に比べて約1/10のソースサイズで収まる。
 
== 組み込み関数 ==
 
{{lang|en|[[Haskell]]}} の表記法を用いる。
 
*<code>I x = x</code>
 
*<code>K x y = x</code>
 
*<code>S x y z = (x z) (y z)</code>
 
 
なお、<code>I</code> は <code>S</code> と <code>K</code> を用いて <code>I = SKK</code> と表せる。
 
 
{{lang|en|Iota}} 記法では、<code>i=λx.xSK=S(SI(KS))(KK)</code> を唯一の組み込み関数として使用する。
 
 
==表記法==
 
ソースコードの表記方法として、4種類用意されている。それらを混在させてコーディングすることができる。
 
*[[:en:SKI_combinator_calculus|コンビネータ算法様式]] - <code>SI(K(KI))</code>
 
*{{lang|en|Unlambda}}様式 - <code>``si`k`ki</code>
 
*{{lang|en|Iota}}様式
 
*{{lang|en|Jot}}様式
 
  
 
== 外部リンク ==
 
== 外部リンク ==
 
*[http://homepages.cwi.nl/~tromp/cl/lazy-k.html The Lazy K Programming Language]
 
*[http://homepages.cwi.nl/~tromp/cl/lazy-k.html The Lazy K Programming Language]
*[http://e.tir.jp/wiliki?%cb%dd%cc%f5%3a%a5%d7%a5%ed%a5%b0%a5%e9%a5%df%a5%f3%a5%b0%b8%c0%b8%ecLazy_K 翻訳:プログラミング言語 {{lang|en|Lazy K}}]
 
  
 +
{{テンプレート:20180815sk}}
 
[[Category:プログラミング言語|LAZYK]]
 
[[Category:プログラミング言語|LAZYK]]
 
[[Category:関数型言語|LAZYK]]
 
[[Category:関数型言語|LAZYK]]

2018/10/12/ (金) 11:08時点における最新版

Lazy K
拡張子 .lazy
パラダイム 純粋関数型言語
型付け なし
主な処理系 lazy
影響を受けた言語 Unlambda
ウェブサイト http://homepages.cwi.nl/~tromp/cl/lazy-k.html
テンプレートを表示


Lazy K(れいじーけー)

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

概要

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

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

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

外部リンク



楽天市場検索: