LISP 5 Functions
Scheme | Common Lisp | Clojure | |
---|---|---|---|
1. car | car | car, first | first |
2. cdr | cdr | cdr, rest | rest |
3. cons | cons | cons | cons |
4. atom | atom | ||
5. eq | eq? | eq | = |
LISP Special Form
scheme | Common Lisp | Clojure | |
---|---|---|---|
cond | |||
lambda | |||
define |
Other Basics
scheme | Common Lisp | Clojure | |
---|---|---|---|
(= 0 0) | #t | T | true |
(= 0 1) | #f | NIL | false |
Haskell | OCaml | F# | scheme | Common Lisp | Clojure | |
---|---|---|---|---|---|---|
head | head [3,1,4,1,5,9,2] -> 3 | (car '(3 1 4 1 5 9 2)) -> 3 | (car '(3 1 4 1 5 9 2)) -> 3 | (first '(3 1 4 1 5 9 2)) -> 3 | ||
tail | tail [3,1,4,1,5,9,2] -> [1,4,1,5,9,2] | (cdr '(3 1 4 1 5 9 2)) -> '(1 4 1 5 9 2) | (cdr '(3 1 4 1 5 9 2)) -> '(1 4 1 5 9 2) | (rest '(3 1 4 1 5 9 2)) -> '(1 4 1 5 9 2) | ||
take | take 5 [3,1,4,1,5,9,2] -> [3,1,4,1,5] | (take 5 '(3 1 4 1 5 9 2)) -> '(3 1 4 1 5) | ||||
take-while | take-while odd? [3,1,4,1,5,9,2] -> [3,1] | |||||
drop-while | drop-while odd? [3,1,4,1,5,9,2] -> [4,1,5,9,2] | |||||
filter | filter odd? 5 [3,1,4,1,5,9,2] -> [3,1,4,1,5] | |||||
Haskell | OCaml | F# | scheme | Common Lisp | Clojure | |
0, 1, 2, ... infinite | (range) -> (0 1 2 3 ... infinite) | |||||
0, 1, 2, 3, 4 | (use srfi-1) (iota 5) -> (0 1 2 3 4) | (range 5) | ||||
2, 3, 4, 5, 6 | (use srfi-1) (iota 5 2) -> (2 3 4 5 6) | (range 2 7) | ||||
3, 5, 7, 9, 11 | [3,5..11] | (use srfi-1) (iota 5 3 2) -> (3 5 7 9 11) | (range 3 12 2) -> (3 5 7 9 11) | |||
cat | (print (slurp "hoge.clj")) |
ghci | OCaml | F# | gauche | clisp | clojure | |
---|---|---|---|---|---|---|
load | :l hoge.hs | (load "./hoge.scm") | (load-file "hoge.clj") | |||