Hatena::Groupcadr

わだばLisperになる このページをアンテナに追加 RSSフィード

2004 | 12 |
2005 | 01 | 02 | 07 | 10 | 11 |
2006 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 11 |

2008-01-30

Arc公開!

| 19:22 | Arc公開! - わだばLisperになる を含むブックマーク はてなブックマーク - Arc公開! - わだばLisperになる

Arcが、本当にこの冬に公開されました!

結構話題にもなってるようですね。

マイコミにも取り上げれるとは思いませんでした。(いつもマニアックな記事を書いてる方ではあるんですが)

しかし、画面写真は、なんでわざわざArcからSchemeに抜けてHello, World!を実行しているんだろう(笑)

とりあえず、早速インストールしてみます!

インストール

からソースをダウンロード

とりあえず、MzSchemeをUbuntuでパッケージからインストールしたところバージョンは、360でした。

推奨は、バージョン352とのことなのですが、面倒なのでとりあえず360で起動。

ざっとチュートリアルを眺めてみましたが、7年前の発表から比べると、なんとなく、とんがっていたところが丸くなってCommon Lisp風味が増した気がします。

On Lispでお馴染のものが沢山定義されているので、Common LispとOn Lispに馴染んだ人は親近感を覚えるんじゃないかと思います。

条件式がデフォルトでアナフォリックでなくなったり、若干寂しいですが、マクロの中で使うことなどを考えると厄介な気もするのでこれで良いのでしょう。

とはいえ、どの辺までが、コアの部分で、どこからがライブラリなのか良く分からないので、上記の評価も間違っているような(笑)

(aif "World!"
     (prn (+ "Hello, " it))
     (prn it))
;=> Hello, World!

とはいえ、aif等は予め用意されています。

  • 色々試してみる
('(foo bar baz) 0)
;=> foo

("012345" 4)
;=> #\4

(let h (fn (n) (repeat n (prn "Hello")))
  (h 5))
;=>
;Hello
;Hello
;Hello
;Hello
;Hello
;nil

(with (inc (annotate 'mac (fn (n) `(= ,n (+ ,n 1))))
       num 5)
  (inc num))
;=> error
;うーん、駄目。

(do (= foo (annotate 'mac (fn (n) `(= ,n (+ ,n 1)))))
    (let n 3
      (foo n)
      (foo n)))
;=> 5
;これは動いたけど、ローカルのマクロじゃないなあ。

うーん、自分の一番の関心はファースト・クラスのマクロ採用案ってのはどうなったのかということなのですが、変数にマクロを格納するのってどうやるんですかね。

それはさておき、とりあえず、記念にどう書くorgにHello,World!を投稿!

((pr "Hello, World!\n")で投稿しましたが、改行付きは、prnで書けた模様…。)

ゲスト



トラックバック - http://cadr.g.hatena.ne.jp/g000001/20080130