Comment detail
アルファベットの繰り上がり (Nested Flatten)streamのstreamになってるんですね。これはややこしい。 でもその必要はあるのかなあ? 結果がちょっと違うようです。最初の26個は一桁じゃないとならない。
あい、仰るとおり、必要ないです。 もう、途中から意地になってやってました。orz やりなおしました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | (define (stream-iota* . rest)
(define (countup s l v)
(if (null? v)
()
(let1 vn (countup (cdr s) (cdr l) (cdr v))
(cond ((null? vn) (list (+ 1 (car v))))
((= (car l) (car vn)) (cons* (+ 1 (car v)) 0 (cdr vn)))
(else (cons (car v) vn))))))
(let* ((start (map car rest))
(lim (map cadr rest)))
(let loop ((v start))
(stream-cons v (stream-delay (loop (countup start lim v)))))))
(define i->char (compose integer->char (pa$ + 65)))
(print (stream->list
(stream-take
(stream-map
(compose (apply$ string)
(map$ i->char)
(remove$ negative?))
(stream-iota* '(-1 26) '(0 26))) 100)))
|






katsu
#804()
[
Scheme
]
Rating-1/1=-1.00
Rating-1/1=-1.00-0+
1 reply [ reply ]