Warning: Undefined variable $type in /home/users/1/sub.jp-asate/web/wiki/extensions/HeadScript/HeadScript.php on line 3
Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /home/users/1/sub.jp-asate/web/wiki/includes/json/FormatJson.php on line 297
Warning: Trying to access array offset on value of type bool in /home/users/1/sub.jp-asate/web/wiki/includes/Setup.php on line 660
Warning: session_name(): Session name cannot be changed after headers have already been sent in /home/users/1/sub.jp-asate/web/wiki/includes/Setup.php on line 834
Warning: ini_set(): Session ini settings cannot be changed after headers have already been sent in /home/users/1/sub.jp-asate/web/wiki/includes/session/PHPSessionHandler.php on line 126
Warning: ini_set(): Session ini settings cannot be changed after headers have already been sent in /home/users/1/sub.jp-asate/web/wiki/includes/session/PHPSessionHandler.php on line 127
Warning: session_cache_limiter(): Session cache limiter cannot be changed after headers have already been sent in /home/users/1/sub.jp-asate/web/wiki/includes/session/PHPSessionHandler.php on line 133
Warning: session_set_save_handler(): Session save handler cannot be changed after headers have already been sent in /home/users/1/sub.jp-asate/web/wiki/includes/session/PHPSessionHandler.php on line 140
Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /home/users/1/sub.jp-asate/web/wiki/languages/LanguageConverter.php on line 773
Warning: Cannot modify header information - headers already sent by (output started at /home/users/1/sub.jp-asate/web/wiki/extensions/HeadScript/HeadScript.php:3) in /home/users/1/sub.jp-asate/web/wiki/includes/Feed.php on line 294
Warning: Cannot modify header information - headers already sent by (output started at /home/users/1/sub.jp-asate/web/wiki/extensions/HeadScript/HeadScript.php:3) in /home/users/1/sub.jp-asate/web/wiki/includes/Feed.php on line 300
Warning: Cannot modify header information - headers already sent by (output started at /home/users/1/sub.jp-asate/web/wiki/extensions/HeadScript/HeadScript.php:3) in /home/users/1/sub.jp-asate/web/wiki/includes/WebResponse.php on line 46
Warning: Cannot modify header information - headers already sent by (output started at /home/users/1/sub.jp-asate/web/wiki/extensions/HeadScript/HeadScript.php:3) in /home/users/1/sub.jp-asate/web/wiki/includes/WebResponse.php on line 46
Warning: Cannot modify header information - headers already sent by (output started at /home/users/1/sub.jp-asate/web/wiki/extensions/HeadScript/HeadScript.php:3) in /home/users/1/sub.jp-asate/web/wiki/includes/WebResponse.php on line 46 https:///mymemo.xyz/wiki/api.php?action=feedcontributions&feedformat=atom&user=223.216.253.16miniwiki - 利用者の投稿記録 [ja]2024-06-27T09:20:05Z利用者の投稿記録MediaWiki 1.31.0Lazy K2017-03-31T17:42:02Z<p>223.216.253.16: </p>
<hr />
<div>{{Infobox プログラミング言語<br />
|名前 = {{lang|en|Lazy K}}<br />
|パラダイム = 純粋[[関数型言語]]<br />
|登場時期 = <br />
|設計者 = <br />
|開発者 =<br />
|最新リリース =<br />
|型付け = なし<br />
|処理系 = {{lang|en|lazy}}<br />
|影響を受けた言語 = {{lang|en|[[Unlambda]]}}<br />
|影響を与えた言語 =<br />
|拡張子 = <code>.lazy</code><br />
|ウェブサイト = [http://homepages.cwi.nl/~tromp/cl/lazy-k.html]<br />
}}<br />
<br />
{{プログラミング言語}}<br />
{{lang|en|'''Lazy K'''}}(れいじーけー)は組み込み関数が3つしかない、純粋[[関数型言語]]である。似た言語として、同じような表記をする、非純粋関数型言語である{{lang|en|[[Unlambda]]}}がある。<br />
<br />
== 概要 ==<br />
純粋関数型言語として、[[チューリング完全]]でありながら、絶対必要なエッセンスだけを抜き出したプログラミング言語である。[[遅延評価]]を行う。使用するにも、処理系を実装するにも、[[コンビネータ論理]]の知識が必要である。<br />
<br />
標準入力をプログラムである関数の引数として受け取る。ただし、標準入力は1バイトごとの{{仮リンク|チャーチ数|en|Church encoding#Church numerals}}の'''スコットエンコードされたリスト'''としてエンコードされ、出力も同様に1バイトごとのチャーチ数の'''スコットエンコードされたリスト'''となる。<br />
<br />
{{lang|en|Lazy K}} にて {{lang|en|Unlambda}} を実装した場合、{{lang|en|Unlambda}} で {{lang|en|Unlambda}} を実装した場合に比べて約1/10のソースサイズで収まる。<br />
<br />
== 組み込み関数 ==<br />
{{lang|en|[[Haskell]]}} の表記法を用いる。<br />
*<code>I x = x</code><br />
*<code>K x y = x</code><br />
*<code>S x y z = (x z) (y z)</code><br />
<br />
なお、<code>I</code> は <code>S</code> と <code>K</code> を用いて <code>I = SKK</code> と表せる。<br />
<br />
{{lang|en|Iota}} 記法では、<code>i=λx.xSK=S(SI(KS))(KK)</code> を唯一の組み込み関数として使用する。<br />
<br />
==表記法==<br />
ソースコードの表記方法として、4種類用意されている。それらを混在させてコーディングすることができる。<br />
*[[:en:SKI_combinator_calculus|コンビネータ算法様式]] - <code>SI(K(KI))</code><br />
*{{lang|en|Unlambda}}様式 - <code>``si`k`ki</code><br />
*{{lang|en|Iota}}様式<br />
*{{lang|en|Jot}}様式<br />
<br />
== 外部リンク ==<br />
*[http://homepages.cwi.nl/~tromp/cl/lazy-k.html The Lazy K Programming Language]<br />
*[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}}]<br />
<br />
[[Category:プログラミング言語|LAZYK]]<br />
[[Category:関数型言語|LAZYK]]</div>223.216.253.16 Warning: Cannot modify header information - headers already sent by (output started at /home/users/1/sub.jp-asate/web/wiki/extensions/HeadScript/HeadScript.php:3) in /home/users/1/sub.jp-asate/web/wiki/includes/WebResponse.php on line 46