scheme - Multiply two lists in Racket -
i using racket multiply list same length. far have tried:
(define (multiply-list b) (if ([(empty? a) (empty)]) else (cons(*car(a)car(b))) cdr(a) cdr(b)))
i having trouble understanding syntax of racket. want update list it's cdr
. cannot right a
, b
lists.
i believe aiming this:
(define (multiply-list b) (if (empty? a) empty (cons (* (car a) (car b)) (multiply-list (cdr a) (cdr b)))))
explanation:
- in scheme, have very, careful put pair of
()
. in code, parentheses unnecessary , others misplaced. ide put them in right place - for instance, pair of
[]
surrounding condition wrong, , this:(empty)
becauseempty
not function, surround()
when want call function - and don't call function this:
car(a)
. correct way is:(car a)
- when use
if
, alternative part of expression must not precededelse
, maybe you're confusingif
expressioncond
expression. - and last not least: don't forget call recursion!
Comments
Post a Comment