;; CSE 413 23sp lec02 interactions demo transcript (reconstructed) Welcome to DrRacket, version 8.8 [cs]. Language: racket, with debugging; memory limit: 128 MB. > 42 42 > (+ 1 2 3) 6 > + # > (define n 42) > n 42 > (+ x y) . . x: undefined; cannot reference an identifier before its definition > (define (twice n) (+ n n)) > (twice 2) 4 > (twice n) 84 > (twice (+ 1 (twice 2))) 10 > (define (fact n) (if (< n 2) 1 (* n (fact (- n 1))))) > fact # > (fact 0) 1 > (fact 1) 1 > (fact 2) 2 > (fact 3) 6 > (fact 4) 24 > (fact 5) 120 > (fact 10) 3628800 > (fact n) 1405006117752879898543142606244511569936384000000000 > (fact 100) 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000 > (fact 1024) 541852879605885728307692194468385473800155396353801344448287027068321061207337660373314098413621458671907918845708980753931994165770187368260454133333721939108367528012764993769768292516937891165755680659663747947314518404886677672556125188694335251213677274521963430770133713205796248433128870088436171654690237518390452944732277808402932158722061853806162806063925435310822186848239287130261690914211362251144684713888587881629252104046295315949943900357882410243934315037444113890806181406210863953275235375885018598451582229599654558541242789130902486944298610923153307579131675745146436304024890820442907734561827369030502252796926553072967370990758747793127635104702469889667961462133026237158973227857814631807156427767644064591085076564783456324457736853810336981776080498707767046394272605341416779125697733374568037475186676265961665615884681450263337042522664141862157046825684773360944326737493676674915098953768112945831626643856479027816385730291542667725665642276826058264393884514911976419675509290208592713156362983290989441052732125187249527501314071676405516936190781821236701912295767363117054126589929916482008515781751955466910902838729232224509906388638147771255227782631322385756948819393658889908993670874516860653098411020299853816281564334981847105777839534742531499622103488807584513705769839763993103929665046046121166651345131149513657400869056334867859885025601787284982567787314407216524272262997319791568603629406624740101482697559533155736658800562921274680657285201570401940692285557800611429055755324549794008939849146812639860750085263298820224719585505344773711590656682821041417265040658600683844945104354998812886801316551551714673388323340851763819713591312372548673734783537316341517369387565212899726597964903241208727348690699802996369265070088758384854547542272771024255049902319275830918157448205196421072837204937293516175341957775422453152442280391372407717891661203061040255830055033886790052116025408740454620938384367637886658769912790922323717371343176067483352513629123362885893627132294183565884010418727869354439077085278288558308427090461075019007184933139915558212752392329879780649639075333845719173822840501869570463626600235265587502335595489311637509380219119860471335771652403999403296360245577257963673286654348957325740999710567131623272345766761937651408103999193633908286420510098577454524068106897392493138287362226257920000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 > (define (twice n) (+ n n)) > (define xvii (+ 1 (twice 8))) > xvii 17 > (define double (lambda (n) (+ n n))) > double # > (double 8) 16 > (lambda (x y) (+ (x y))) # > (define plus (lambda (x y) (+ x y))) > (plus 3 4) 7 > ((lambda (x y) (* x y)) 3 4) 12 > ((lambda (w x y z) (+ w x y z)) 2 3 4 5) 14 > (1 2 3 4) . . application: not a procedure; expected a procedure that can be applied to arguments given: 1 > '(1 2 3 4) '(1 2 3 4) > n 42 > 'n 'n > '(red green blue) '(red green blue) > (define nums '(1 2 3 4)) > nums '(1 2 3 4) > (cons 0 nums) '(0 1 2 3 4) > (cons 1 '()) '(1) > (cons 1 (cons 2 '())) '(1 2) > (cons 1 2) '(1 . 2) > (cons 1 (cons 2 (cons 3 (cons 4 '())))) '(1 2 3 4) > (car nums) 1 > (cdr nums) '(2 3 4) > (car (cdr nums)) 2 > (car (cdr (cdr nums))) 3 > (cadr nums) 2 > (caddr nums) 3 > (cadddr nums) 4 > (define (second lst) (cadr lst)) > (second nums) 2 > (cons 1 2) '(1 . 2) > (cons 1 (cons 2 3)) '(1 2 . 3) > (length nums) 4 > (reverse nums) '(4 3 2 1) > (define (sum lst) (if (null? lst) 0 (+ (car lst) (sum (cdr lst))))) > (sum '()) 0 > (sum '(5)) 5 > (sum nums) 10 > -5 -5 >