Gaucheで多値を扱う。

filterとremoveを同時にやるpartitionを教えてもらったので使ってみようと思ったらなんと多値じゃないか。
なになに?参照渡しがどうのこうの・・・って schemeは参照渡しだよな。

>>(let ((a '(1 2 3))) (print a)((lambda (x) (filter! odd? x)) a) a)
(1 2 3)
=>(1 3)

なんかよくわからないが とりあえず、ここで中断する。

>>(receive (a b)(values 1 2)(list a b))
=>(1 2)

ここでreceive句がbegin句と大体同じ機能を持ってることがわかったので良しとしよう。
call/ccは先のばし。メリットがわからないんだもん。