Hi
I am having fun learning Clojure but have a problem with the following
code. If you run the code with the ;OK removed then it works. If you
run the code with ;ERROR removed then it doesn't.
The code is my own implementation of splitting a string into
individual words (just a learning exercise). The error message is:
java.lang.IllegalArgumentException: No matching method found:
isWhitespace (error.clj:0)
Which is strange because the ;ERROR line has nothing to do with
isWhitespace?
Any help would be appreciated.
Thanks
Morten
-----------------------------------------------------
(defn line-skip-ws [line]
(cond
(not (first line))
""
(Character/isWhitespace (first line)) (line-skip-ws (rest
line))
true
(apply str line)))
(defn line-split-1 [word line]
(let [c (first line)]
(println "line-split-1" "word:" word "line:" line "c:" c
"class:" (class c))
(cond
(not c) [word
""]
(Character/isWhitespace c) [word (apply str line)]
true
(line-split-1 (str word c) (rest line)))))
(defn line-split [line]
(let [split (line-split-1 "" (line-skip-ws line))]
(if (= (first split) "")
[""]
;ERROR (concat [(first split)] (line-split (rest split))))))
;OK (concat [(first split)] []))))
(doseq [x (line-split " Hello world! ")] (println (format "\"%s\""
x)))
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Clojure" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---