- 667 名前:デフォルトの名無しさん mailto:sage [2005/08/12(金) 08:36:46 ]
- >>645
亀だけど Gauche で書いてみた. 入力は ((シンボル . インデント数) ...) みたいな感じ. (use srfi-1) (define (iexpr->list xs) (define (f xs level rs) (if (null? xs) (values xs (reverse! rs)) (receive (sym l) (car+cdr (car xs)) (cond ((= l level) (f (cdr xs) l (cons sym rs))) ((< l level) (values xs (reverse! rs))) (else (receive (rest res) (f xs l '()) (f rest level (cons res rs)))))))) (values-ref (f xs 0 '()) 1))
|

|