[2021 spring] CS61A Lab 10 : Scheme


Lab10: https://inst.eecs.berkeley.edu/~cs61a/sp21/lab/lab10/
基本語法: https://www.cnblogs.com/ikventure/p/15033731.html
內置procedure: https://inst.eecs.berkeley.edu/~cs61a/sp21/articles/scheme-builtins/

Q1: Combinations

scm> (if (print 1) (print 2) (print 3)) 
1
2

scm> (* (if (> 3 2) 1 2) (+ 4 5))
9

scm> (define foo (lambda (x y z) (if x y z)))
foo

# 注意 先傳入z,再判斷x
scm> (foo 1 2 (print 'hi))
hi
2

# 注意 (quote E) yields E itself as the value, without evaluating it as a Scheme expression。
scm> ((lambda (a) (print 'a)) 100)
a

Q2: Over or Under

(define (over-or-under num1 num2) 
    (if (< num1 num2)
        -1
        (if (= num1 num2)
            0
            1)))

Q3: Make Adder

(define (make-adder num) (lambda (x) (+ x num)))

Q4: Compose

(define (composed f g) (lambda (x) (f (g x))))

Q5: Make a List

(define lst (list (list 1) 2 (list 3 4) 5))


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM