到目前爲止,我已經試過了,但我發現了1:伯爵的信發生在一個列表
(define occur
(lambda (a s)
(count (curry string-contains? a) s)))
例:(occur "u" '("u" "uaub" "ubub"))
=> 1
它應該是5
要避免使用咖喱,因爲我不知道它是如何工作尚: Dr. Racket Recursion count occurrences
到目前爲止,我已經試過了,但我發現了1:伯爵的信發生在一個列表
(define occur
(lambda (a s)
(count (curry string-contains? a) s)))
例:(occur "u" '("u" "uaub" "ubub"))
=> 1
它應該是5
要避免使用咖喱,因爲我不知道它是如何工作尚: Dr. Racket Recursion count occurrences
這將刪除字符串連接的縮減。
(define (how-many items char)
(define r (regexp (format "[^~a]" char)))
(string-length (regexp-replace* r (string-join items) "")))
; call it with (how-many '("u" "uaub" "ubub") #\u)
但是,如果您不希望一次卡住所有的字符串,則可以對各個結果進行求和。
(define (how-many items char)
(define r (regexp (format "[^~a]" char)))
(for/sum ((text (in-list items)))
(string-length (regexp-replace* r text ""))))
什麼是(string-contains? "abc" "b")
?
什麼是(string-contains? "b" "abc")
?
Ť 和F,由於 「ABC」 不包含 「b」 的內? – HelloWorld
的string-contains?
語法是:
(string-contains? haystack needle)
這意味着**你討好的錯誤論點*當你調用
(curry string-contains? a)
這標識a
與haystack
:要搜索的字符串,而不是要搜索的字符串。 curry
返回一個參數爲1的參數,它接受needle
參數,並搜索它是否發生在a
中。而你想要的是另一種方式。
幸運的是,球拍對你的解決方案:只需添加信r
到curry
符號:使用curryr
函數來代替,結合最右邊的參數,並從左側的分類:
(curryr string-contains? a)
這將使a
與needle
參數一致(在較大的haystack
中找到的東西),返回一個採用haystack
參數的函數。
此函數然後應用於列表中的每個元素,並計算它返回true的時間。
的curry
與curryr
插圖在cons
功能:
(map (curry cons 'a) '(1 2 3)) -> ((a . 1) (a . 2) (a . 3))
(map (curryr cons 'd) '(1 2 3)) -> ((1 . d) (2 . d) (3 . d))
(curry cons 'a)
有效地爲我們提供了功能(lambda (arg) (cons 'a arg))
。
(curryr cons 'd)
有效地爲我們提供了功能(lambda (arg) (cons arg 'd))
。
部分應用程序和柯里可以可視化爲糖,可理解爲嚮明確的和更詳細的lambda
語法的轉換。如果您對某些咖啡館的情況感到困惑,時不時會對您有所幫助。
謝謝!我想我現在理解咖喱。 – HelloWorld
以下循環也可用於計數發生次數。它採用count
功能來查找列表中出現的字符串從獲得:
(define (occur c l)
(let loop ((l l)
(n 0))
(cond
[(empty? l) n]
[else (loop (rest l)
(+ n
(count (lambda(x) (equal? x c))
(string->list (first l)))))])))
需要注意的是「U」是要發送的字符。
測試:
(occur #\u '("u" "uaub" "ubub"))
輸出:
5
''[^〜a]「'匹配什麼? – HelloWorld
在字母#\ u的情況下,「[^〜a \]」首先被格式用於生成字符串「[^ u]」。帶括號的正則表達式部分表示一組字符,而^脫字號表示不在括號的上下文中,因此它最終會變成「任何不是'u'的字符。」這些非U字符被替換爲空字符串。 –