Skip to content

Instantly share code, notes, and snippets.

@valvallow
valvallow / DateAndTimes.scm
Created February 10, 2010 11:52
quoted list, listed list.
(map (lambda (f)
(f 5 5))
(list * + - /))
; -> (25 10 0 1)
(map (lambda (f)
(f 5 5))
'(* + - /))
; -> error
;; member?
(define member?
(lambda (a lat)
(cond ((null? lat) #f)
((eq? a (car lat)) #t)
(else (member? a (cdr lat))))))
(define member?
(lambda (a lat)
@valvallow
valvallow / 10times.hello.scm
Created February 10, 2010 07:41
10 times say helo.
;; let loop
(let loop ((s 0))
(if (< s 10)
(begin
(print "hello")
(loop (+ 1 s)))))
;; for-each
(use srfi-1)
(for-each
@valvallow
valvallow / TheSeasonedSchemer.scm
Created February 11, 2010 07:38
The Seasoned Schemer, sum-of-prefixes
;; sum-of-prefixes
; (2 1 9 17 0) -> (2 3 12 29 29)
; (1 1 1 1 1) -> (1 2 3 4 5)
; letrec
(define sum-of-prefixes
(lambda (tup)
テスト
@valvallow
valvallow / fold,unfold,pair-fold,reduce.scm
Created February 11, 2010 03:33
fold, reduce, fold-pair, unfold
;; Gauche ユーザリファレンス: 10.2 srfi-1 - List library http://practical-scheme.net/gauche/man/gauche-refj_102.html#SEC310
;; Making The Road Wiki - Programming::Scheme::SRFI1 http://ow.ly/13jo0
;; fold
(fold +
0
'(1 2 3 4 5))
; -> 15
@valvallow
valvallow / TheSeasonedSchemer.scm
Created February 11, 2010 14:26
fold, fold-right,
; fold, fold-right
(fold (lambda (x y z)
(display (format "x = ~a, y = ~a, z = ~a\n" x y z))
(+ x y z)) 0 '(1 1 1) '(1 1 1))
;; x = 1, y = 1, z = 0
;; x = 1, y = 1, z = 2
;; x = 1, y = 1, z = 4
;; 6
(fold (lambda (m n o r)
(((lambda (f)
(lambda (n)
(if (zero? n)
1
(* n ((f f)(- n 1))))))
(lambda (f)
(lambda (n)
(if (zero? n)
1
(* n ((f f)(- n 1))))))) 5)
@valvallow
valvallow / hello.js
Created February 17, 2010 19:15
test
/*
(function (){
alert('hello');
})();
*/
var hello = function () { alert('hello')};
(use srfi-1)
(define (collatz n)
(let ((stop (lambda (s)
(= s 1)))
(term (lambda (s)
(cond ((even? s)(/ s 2))
((odd? s)(+ (* s 3) 1))
(else s)))))
(unfold stop
(lambda (s)