[functional-tests] thin_check scenarios now work.

This commit is contained in:
Joe Thornber
2017-08-02 13:42:37 +01:00
parent 9ea1af5f4b
commit 213d9d2075
3 changed files with 206 additions and 39 deletions

View File

@@ -0,0 +1,25 @@
(library
(list-utils)
(export intersperse iterate accumulate)
(import (rnrs))
(define (intersperse sep xs)
(cond
((null? xs) '())
((null? (cdr xs)) xs)
(else (cons (car xs)
(cons sep
(intersperse sep (cdr xs)))))))
(define (iterate fn count)
(let loop ((count count))
(if (zero? count)
'()
(cons (fn) (loop (- count 1))))))
;; calculates a running total for a list. Returns a list.
(define (accumulate xs)
(let loop ((xs xs) (total 0))
(if (null? xs)
'()
(cons total (loop (cdr xs) (+ total (car xs))))))))