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 |

2006-09-16

勉強するよ.9

| 18:08 | 勉強するよ.9 - わだばLisperになる を含むブックマーク はてなブックマーク - 勉強するよ.9 - わだばLisperになる

Schemeの勉強.9

今日は、第9章終了。

構造体近辺を学ぶ。自分はSchemeの処理系として、

Gaucheを使っているが、標準では、defstructがないら

しい。

ということで、

1. defstructマクロを組む。

2. 代わりの方法を探す

ってことになった。

章末には、defstructの定義も載っているが、いまいち

挙動が良く分かんない。

それで代わりの方法を探してみたら、define-classが使

えるらしい。

ということで、とりあえず、define-classで実習してみ

た。

(define-class tree ()
  ((height :init-keyword :height)
   (girth :init-keyword :girth)
   (age :init-keyword :age)
   (leaf-shape :init-keyword :leaf-shape :init-value 'frond)
   (leaf-color :init-keyword :leaf-color :init-value 'green)))

(define coconut
  (make tree
    :height 30
    :leaf-shape 'frond
    :age 5))

(ref coconut 'height)

(set! (ref coconut 'height) 40)

な感じ