Haskell可以这样做:
['a'..'z']
像Haskell一样容易表达Clojure吗?
答案 0 :(得分:6)
没有简单的等效于Haskell的语法,但有几种选择,仅举几例:
(map char (range (int \a) (inc (int \z))))
(seq "abcdefghijklmnopqrstuwvxyz")
无论哪种方式,结果都是:
(\a \b \c \d \e \f \g \h \i \j \k \l \m \n \o \p \q \r \s \t \u \v \w \x \y \z)
答案 1 :(得分:3)
如果它不存在,你总是可以写它。
(defn letter-range [start end]
(map char (range (int (.charAt start 0))
(inc (int (.charAt end 0))))))
(letter-range "a" "z")
=> (\a \b \c \d \e \f \g \h \i \j \k \l \m \n \o \p \q \r \s \t \u \v \w \x \y \z)
答案 2 :(得分:0)
如果您进入箭头操作,您可以写...
(->> [\a \z]
(map int)
(apply #(list %1 (inc %2)))
(apply range)
(map char))