0
(def filename "dictionary2.txt")
(defn check_word [filename word]
(with-open [r (clojure.java.io/reader filename)]
(doseq [line (line-seq r)]
(if (compare line word)
(println word)))))
(check_word filename "wizard")
텍스트 파일의 줄 수만큼 "found"를 인쇄합니다. 왜 진술이 항상 사실로 돌아가는가? "wizard"라는 단어가 사전 파일에 존재합니다.Clojure- 줄과 문자열 비교
'compare'는 부울 컨텍스트에서 항상 'true'로 평가되는 숫자를 반환합니다. – Lee
@Lee 동일합니까? 어느 쪽도 일하지 않았다. 어떻게 확인하나요? – iyazici
비교는 비교 된 문자열의 사전 식 순서에 따라 -1, 0 또는 1을 반환합니다. 그래서's1 == s2 => (s1 s2 비교) == 0' 일 때,'(0? 라인 단어를 비교))'그것을 해결해야합니다 ..하지만 나는 오히려 간단한'(= (clojure.string/trim line) 단어)' – leetwinski