C言語の
enum {A,B,C,D};
switch (type) {
case A:return B;
case B:return C;
case C:return D;
case D:return A;
}
みたいな比較を
schemeで簡潔にやるとしたらどうなるんですか?
(define A 0)
(define B 1)
(define C 2)
(define D 3)
(case type
((A)B)
((B)C)
((C)D)
((D)A))
とやると、シンボルの比較になってしまう様ですが。
(cond
((= type A)B)
((= type B)C)
((= type C)D)
((= type D)A))
とするしかないでしょうか。