簡體   English   中英

在Clojure函數中使用過濾器

[英]Using filter in clojure function

為什么

(filter even? (range 10))

給出(0 2 4 6 8)

((fn [x] filter even? x)
          (range 10))

(0 1 2 3 4 5 6 7 8 9)

您的匿名函數中有一個問題-讓我們以一種更具可讀性的方式編寫它:

((fn [x]
   (do filter
       even?
       x))
 (range 10))

現在,我認為很明顯為什么它返回整個范圍序列:( (range 10)值綁定到參數x並作為函數的結果返回。

正確的版本是:

((fn [x] (filter even? x))
 (range 10))
;; => (0 2 4 6 8)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM