的名單上有利用布爾具有1至替換在一個列表中的第一個數字,而不管其值的函數:球拍 - 應用一個布爾值列表
F({(0,1,0 ),(1,0,1),(1,0,0),...})= {(1,1,0),(1,0,1),(1,0,0),...。 ..}
到目前爲止,我有
(define (procB set)
(map (λ (lst1) ((number? (first lst1)) (cons 1 (rest lst1)))) set))
當功能被應用到組的其餘部分的麻煩。我得到的標準誤差
application: not a procedure;
expected a procedure that can be applied to arguments
given: #t
我得到的,它是不工作,因爲那裏是一個布爾值(給定:#T),但我不太知道如何解決它。
報告的錯誤表明您嘗試應用一個值,就像它是一個函數一樣 - 在這種情況下,解釋器假定'(number?(first lst1))'的結果是一個函數,而不是。如果您打算根據布爾比較的結果執行操作,則使用'if'或'cond'。 –