--- title: クラスのインスタンスを作成するとき (@shibuyalisp Hackathon) author: kazu634 date: 2010-10-24 wordtwit_post_info: - 'O:8:"stdClass":13:{s:6:"manual";b:0;s:11:"tweet_times";i:1;s:5:"delay";i:0;s:7:"enabled";i:1;s:10:"separation";s:2:"60";s:7:"version";s:3:"3.7";s:14:"tweet_template";b:0;s:6:"status";i:2;s:6:"result";a:0:{}s:13:"tweet_counter";i:2;s:13:"tweet_log_ids";a:1:{i:0;i:5369;}s:9:"hash_tags";a:0:{}s:8:"accounts";a:1:{i:0;s:7:"kazu634";}}' categories: - gauche ---

値が束縛されているときだけ、スロットに束縛するにはどうすればいいのかな?やりたいことはこういうことなんだけど、「malformed if」と怒られた:

(define-class <photo-data> ()
((width :init-keyword :width :init-value )
(url-with-slug :init-keyword :url-with-slug :init-value "")))
(define (make-photo-data-list sxml)
(make <photo-data>
;; 与えられたSXMLにwidth要素が存在するとき、スロットに値をセットしたい
;; でも、これだとエラーになる
(if ((if-car-sxpath '(// width)) sxml)
:width (cadr ((car-sxpath '(// width)) sxml))
:width )
:url-with-slug (cadr ((car-sxpath '(// url-with-slug))
sxml))))