-2

こんにちは、リスト内の数値のみを合計し、他のタイプのデータ (文字列など) を無視するリストを消費する関数を作成する必要があります。

例 (adding-only-numbers (cons 5 (cons "b" ( cons 2 (cons "whatsup" empty))))) は (cons 7 (cons "b" (cons "whatsup" empty))) に出てくるはずです)

数値を収集してそれらをすべて加算する際に、すべての文字列またはその他のデータ型を順番に保持します。

数字がなく、文字列のみの場合は、先頭に 0 を指定する必要があります

例 (adding-only-numbers (cons "eb" (cons "b" ( cons (make posn 5 0) (cons "whatsup" empty))))) は (cons 0 (cons "eb" (cons "b" ( cons (make posn 5 0) (cons "whatsup" empty)))))

あなたの助けは大歓迎です!

4

1 に答える 1

0

これは宿題のようなにおいがするので、正しい軌道に乗せます。

#!/usr/bin/racket
#lang racket

(define (sum lst)
  (foldl (lambda (num sum)
           (if (number? num) (+ sum num) sum))
         0
         lst))

(sum '(1 2 "hello"))

したがって、これはフラットリストの合計を返します...これをリストの先頭にプッシュするもう1つの簡単な手順である必要があります。

foldlこの関数は、各要素、開始値、およびリストに適用する関数を受け取ることに注意してください。

于 2013-02-27T02:52:09.960 に答える