从列表中过滤与方案中的字符匹配的单词
Filtering words from a list that matches my char in scheme
刚开始学scheme。
我需要创建一个谓词函数来过滤一个列表(可能是空的)并且只在它们与 char:
匹配时输出
(filter-word '((#\g #\a #\m #\e)
(#\d #\o #\l #\l)
(#\d #\i #\c #\e))
#\a)
输出:
((#\g #\a #\m #\e))
我正在尝试使用 filter 和 member,但我不知道如何构建这个函数,我不知道是否可以同时使用 filter lambda 和 member。
对于这种情况,地图是更好的选择吗?
(define (filter-word words ch)
(cond
[(null? words) words]
[(filter
(λ (words)(member? ch (words)) words))]))
我知道不完整,但在这种情况下,输出是#
可以直接使用filter
,不需要额外的case。这应该有效:
(define (filter-word words ch)
(filter (lambda (word) (member ch word))
words))
例如:
(filter-word '((#\b #\u #\s)
(#\b #\a #\r)
(#\c #\a #\r))
'#\b)
=> '((#\b #\u #\s) (#\b #\a #\r))
(filter-word '((#\b #\u #\s)
(#\b #\a #\r)
(#\c #\a #\r))
'#\c)
=> '((#\c #\a #\r))
刚开始学scheme。 我需要创建一个谓词函数来过滤一个列表(可能是空的)并且只在它们与 char:
匹配时输出(filter-word '((#\g #\a #\m #\e)
(#\d #\o #\l #\l)
(#\d #\i #\c #\e))
#\a)
输出:
((#\g #\a #\m #\e))
我正在尝试使用 filter 和 member,但我不知道如何构建这个函数,我不知道是否可以同时使用 filter lambda 和 member。 对于这种情况,地图是更好的选择吗?
(define (filter-word words ch)
(cond
[(null? words) words]
[(filter
(λ (words)(member? ch (words)) words))]))
我知道不完整,但在这种情况下,输出是#
可以直接使用filter
,不需要额外的case。这应该有效:
(define (filter-word words ch)
(filter (lambda (word) (member ch word))
words))
例如:
(filter-word '((#\b #\u #\s)
(#\b #\a #\r)
(#\c #\a #\r))
'#\b)
=> '((#\b #\u #\s) (#\b #\a #\r))
(filter-word '((#\b #\u #\s)
(#\b #\a #\r)
(#\c #\a #\r))
'#\c)
=> '((#\c #\a #\r))