>毎週金曜日発行
>
>【今週の目次】
>
>1. メルマガ第二十四号です
>2. 今週目についたこと/記事/動画
>3. アップデートされた処理系/Lisp系アプリ
>4. 編集後記
>
>
>━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
>1. メルマガ第二十四号です
>━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
>こんにちは、g000001です。メルマガ第二十四号です。
>
>毎度、適当なことを書き散らかしていますので、質問、間違いのご指摘等あり
>ましたら、lisp-news@cdddddr.org までお願いします。
>
>
>━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
>2. 今週目についたこと/記事/動画
>───────────────────────────────────
>
>((( SRFI 105: Curly-infix-expressions がファイナルに
> http://srfi.schemers.org/srfi-105/srfi-105.html
> )))
>
>色々と議論が盛り上がっていた様子のSRFI 105ですが、ファイナルになったよ
>うです。
>{f(x) + g(y) + h(z)} が (+ (f x) (g y) (h z)) に展開されたりするようで
>すが、今後どの程度使われるようになるのか注目です。
>
>
>((( Meet the new Light Table
> http://www.chris-granger.com/2012/11/05/meet-the-new-light-table/
> )))
>
>Clojure等の開発環境として期待されているLight Tableですが、ここに来て
>一から書き直して新しくなったとのこと。
>
>今なお色々新しいアイデアを盛り込んでいるようで、夢がひろがりんぐ中の
>ようです。
>
>
>((( The Kernel Underground
> http://axisofeval.blogspot.jp/2011/09/kernel-underground.html )))
>
>ネタがないのでLisp方言の紹介ですが、今回はkernelの紹介です。
>
>現在のLisp方言では、基本的に、exprとmacroしかありませんが、昔のLisp方
>言には、fexprや、lexpr等の評価方法がexprとは違う関数の形式があり、
>fexprは関数だけれど引数が評価されない、というものでした。fは、special
>formのformから来ているようです。
>
>さらに名前の使い分けとしては、subrはシステム備え付けのもので、exprはユー
>ザー定義のものということで、fsubr subr fexpr expr等がありました。
>fexprはユーザー定義のspecial formみたいなところです。
>
>fexprは、コンパイルが難しいとされ、さらに、大抵のケースはマクロで処理で
>きるということで、MacLISPや、Interlispという80年代初頭の二大方言にあっ
>たfexprもCommon Lispには受け継がれず、廃れてしまいました。
>
>このkernelという方言は、このfexprに再度フォーカスするもので、過去に言
>われていたfexprの問題点を解決しているようです。
>
>- http://en.wikipedia.org/wiki/Kernel_%28programming_language%29
>- ftp://ftp.cs.wpi.edu/pub/techreports/pdf/05-07.pdf
>
>kernelだと変数を1インクリメントする関数(fexpr)は
>
>;; $は$(S)pecial formの印
>($define! $inc1
> ($vau (var) env
> (eval (list $set! env var (list + 1 var)) env)))
>
>($let ((x 100))
> ($inc1 x)
> x)
>;=> 101
>
>のように書けます。引数が評価されずに渡ってくるので内部で明示的にevalす
>るのがポイントです。
>
>fexprは関数なのでファーストクラスですが、構文がファーストクラスで扱え
>るとどんなことになるのかな、ということで無理矢理な例ですがwhenを作って
>みます。
>
>;; ボディを評価せず捨てて#fを返すfexpr
>($define! $false ($vau args #ignore #f))
>
>($define! $my-when
> ($vau (pred . body) env
> ;; predが#tの場合は、$sequence(Schemeでいうbegin)を返し、
> ;; #fの場合は、上で定義した$falseを返し、bodyをそれに適用
> (apply (wrap ($if (eval pred env) $sequence $false))
> body
> env)))
>
>($my-when (=? (+ 1 1) 2)
> (display "yes")
> (newline)
> #t)
>;>>> yes
>;=> #t
>
>($my-when (=? (+ 1 1) 0)
> (display "yes")
> (newline)
> #t)
>;=> #f
>
>等々、色々遊べるようなので試してみると面白いかと思います。
>Scheme/CLのように仕様と実装は別ですが、自分が試してみた実装は、
>- https://bitbucket.org/AndresNavarro/klisp
>と
>- http://web.cs.wpi.edu/~jshutt/sink-01m10.tar.gz
>です。
>※sinkの方は、コンスの破壊的操作ができた頃のPLT Schemeで動くようです。
>
>━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
>3. アップデートされた処理系/Lisp系アプリ
>───────────────────────────────────
>
>- Racket v5.3.1 (Scheme処理系)
> http://lists.racket-lang.org/users/archive/2012-November/054773.html
>
>
>- Allegro CL 9.0 Free Express Edition (Common Lisp処理系)
> http://www.franz.com/ps/newsletter-edt.lhtml#article1
>
>
>- ManKai Common Lisp 1.1.1 (Common Lisp処理系)
> http://lists.common-lisp.net/pipermail/mkcl-announce/2012-November/000013.html
>
>
>- SBCL 1.1.1 (Common Lisp処理系)
> http://permalink.gmane.org/gmane.lisp.steel-bank.announce/137
>
>
>━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
>5. 編集後記
>───────────────────────────────────
> 今週もネタがありませんでした。アップデートされた処理系の数はそこそこ
>あったのですが…。
>
>----------------------------------------------------------------------
>lisp-news
>発行システム:『まぐまぐ!』 http://www.mag2.com/
>配信中止はこちら http://www.mag2.com/m/0001548450.html
>----------------------------------------------------------------------
>◎lisp-news
> のバックナンバー・配信停止はこちら
>⇒ http://archive.mag2.com/0001548450/index.html
>
-----------------
sent from W-ZERO3
解除↓
00552428u@merumo.ne.jp
お小遣いサイト その�
ハッピーマイル
http://happymile.net/touroku.php?i=10247853
その�
トリプルポイント
http://triplepoint.jp/index.php?i=10276868
[メルモPR]
メルモでメルマガ発行しよう!
http://merumo.ne.jp/
バックナンバー
http://bn.merumo.ne.jp/list/00552428
配信元:メルモ byGMO
http://merumo.ne.jp/
スマートフォンの方はこちらから登録端末変更をしてください。
http://cgi.merumo.ne.jp/reader/subsc_change.do
0 件のコメント:
コメントを投稿