

schemeで((商品番号a 価格a 購入個数a) (商品番号b 価格b
購入個数b)....)のようなリストを定義して、価格a*購入個数a+価格b＊購入個数b＋...のように、商品の総価格を求める関数を作りたいです。  
どのように関数を書くべきでしょうか？

[code]

    >(display (count-price '((1 100 10) (2 250 5) (3 500 3))))
    
[/code]

[code]

    #lang racket
    (define (seki x y) ( * x y))
    
    (define (count-price item)
      (if (null? item)
          `()
          ( apply + seki (map cadr item) (map last item))))
    
[/code]


CC BY-SA 4.0
2021-02-02T03:17:18.497
73748
2021-02-02T03:46:58.037
40034
question
scheme
schemeでリストの要素同士の積を求めるには


関数 `seki` のパラメータをリストに変更します。

※ 入力値として要素数 3 の正整数のリストを前提としていますので、エラーチェックを追加する必要があるでしょう。

[code]

    (define (seki lst) (apply * (cdr lst)))
    
    (define (count-price item)
      (if (null? item)
          `()
          (apply + (map seki item))))
    
    (display (count-price '((1 100 10) (2 250 5) (3 500 3))))
    =>
    3750
    
[/code]


CC BY-SA 4.0
2021-02-02T03:46:58.037
73750
2021-02-02T03:46:58.037
73748
answer