======interlace.scm======
#!/usr/bin/env racket
#lang racket
zdvoji prvky v seznamu
(define doublist
(lambda (l)
(foldr (lambda (e t) (cons e (cons e t)))
'()
l)))
(doublist '(1 2 3))
(define (lreverse l) (foldl cons '() l))
(lreverse '(r e v e r se))
foldr f term list0 ... listn
1 x 2 x 3
(define interlace
(lambda (l i)
(if (or (null? l) (null? (car l)))
l
(cons (car l)
(foldr (lambda (e t) (cons i (cons e t)))
'()
(cdr l))))))
(interlace '() 'x)
(interlace '(1) 'x)
(interlace '(1 2 3) 'x)
(interlace '(1 2 3) '())
(interlace '(1 2 3) '(1 2 3))
(foldr + 0 '(1 2 3))
(foldr cons '() '(1 2 3))
vim: syntax=racket