You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

76 lines
1.5 KiB
Scheme

12 years ago
; ------------------------------------------------------------------------------
; literals
; ------------------------------------------------------------------------------
; integer
1
; float
3.14
; string
"jordan"
12 years ago
; booleans. I don't like the look of #t and #f. They're dumb.
12 years ago
#t
#f
12 years ago
12 years ago
; ------------------------------------------------------------------------------
; basic math
; ------------------------------------------------------------------------------
(+ 1 1)
(- 1 1)
(* 1 1)
(/ 1 1)
; ------------------------------------------------------------------------------
; grammar
; ------------------------------------------------------------------------------
(define x 5)
x
12 years ago
(set! x "steve")
x
12 years ago
12 years ago
(quote (1 2 3))
12 years ago
12 years ago
(if #f (quote "true-value") (quote "false-value"))
(if #t (quote "true-value") (quote "false-value"))
(define plusone (lambda (x) (+ x 1)))
(plusone 1)
((lambda (x) (* x x)) 4)
((lambda (x y) (+ x y)) 10 25)
(define make-account
(lambda (balance)
(lambda (amt)
(begin (set! balance (+ balance amt)) balance))))
(define a1 (make-account 100.00))
(a1 -20.00)
12 years ago
12 years ago
(not "dave")
(if (not #f) (quote "true-condition") (quote "false-condition"))
(length (quote (1 2 3)))
(list 1 2 3)
(length (list 1 2 3))
(null? null)
; this one I don't get. It's supposed to evaluate to false? What? Why?
; Because null is an expression that evaluates to an empty sexp, but it's not,
; itself, actually null? What the fuck, lisp?
(null? (quote null))
(null? (quote ()))
(null? (list))
12 years ago
(symbol? (quote null))
(symbol? 1)