(define-struct position (name numshares share-price))
(define p1
(cons (make-position "INT" 10 192) (cons (make-position "SSS" 4 42)
empty)))
mult
는체계 구조 및 목록
(define (mult n)
(* (position-numshares n)
(position-share-price n)))
CONST이 위치 numshares 및 목록의 위치 주가 소요 둘을 곱한 내 도우미 함수입니다.
(define (const n)
(cond
[(empty? n) empty]
[(cons? n)
(+ (mult (first n))
)]))
내가하고 싶은 것은 목록의 첫 번째 부분을 취해 나머지 목록을 함께 추가하는 것입니다. 대신, 나는 단지 목록의 첫 번째를 얻는다. 그래서 내가한다면 (const p1) 1920 년에야 얻을 수 있지만 2088 (10 * 192 + 4 * 42)을 얻고 싶습니다. 나머지는 반복적으로 시도했지만 오류가 발생합니다. 아마 뭔가 간단한 것이 빠져 있습니다. 도움을 주시면 감사하겠습니다.
@Josh이 주름에 대한 자세한 내용은, 당신은 (HTTP를 [목록을 병합에 대한이 답변]에서보고가있을 수 있습니다 : 커먼 리스프에서 우리는 (
foldl
/foldr
는 커먼 리스프에reduce
입니다) 써서 : //stackoverflow.com/a/19229532/1281433) 및 [이 값에 대한 답변] (http://stackoverflow.com/a/19006055/1281433)을 참조하십시오. (면책 조항 : 둘 다 내 대답입니다.) –