如何通过检测clojure中的空格将句子分成单词

时间:2016-03-06 23:01:51

标签: clojure

我想通过检测空间将一个句子分成单词。例如,

user=>(split "I like reading books")
["I" "like" "reading" "books"]

我的代码是

(use '[clojure.string :only(split triml)])

但是当我编译它时,我得到了“nil”

(load-file "file")
nil  
user=>(split "I like reading books")
["I" "like" "reading" "books"]

我怎样才能摆脱“无”或者是否有其他方法将句子分成没有幻灯片效果的单词。谢谢!

2 个答案:

答案 0 :(得分:2)

我有点卡住了,所以我会试着回答。

显然,您正在运行REPL会话。 REPL,WILL,接受输入表达式,对其进行评估,并输出评估结果。

输入(load-file "file")时,它是一个表达式,而不是一条指令,它将有一个返回值,即nil。我们正在评估这个表达式只是为了它的副作用---加载相应的文件。注意区别:nil是结果,加载代码是副作用。

在我不知道的情况下,你不能抑制REPL的返回值。但你真的不应该担心这一点。你不打算在生产中运行REPL,是吗?

答案 1 :(得分:1)

要通过检测空格将句子拆分为单词,您必须调用

(clojure.string/split your-sentence #" ")

或在你的情况下

(clojure.string/split "I like reading books" #" ")

'分裂'需要两个参数:第一个是要拆分的字符串,第二个是必须拆分字符串的正则表达式。

请点击此处了解更多详情:

https://clojuredocs.org/clojure.string/split