#!/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