Clojure能像Haskell一样制作字母表吗?
Haskell可以做到这一点:Clojure能像Haskell一样制作字母表吗?,haskell,clojure,Haskell,Clojure,Haskell可以做到这一点: ['a'..'z'] 有没有像Haskell那样简单的Clojure表达式?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 \
['a'..'z']
有没有像Haskell那样简单的Clojure表达式?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)
如果它不存在,你可以写它
(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)
如果你喜欢箭行动,你可以写
(->> [\a \z]
(map int)
(apply #(list %1 (inc %2)))
(apply range)
(map char))
重复