小编Hug*_*ier的帖子

通过字符串输入时 Clojure 布尔值混淆

我在这里缺少什么?...

虽然这工作得很好:

(def env [true true true false])
=> #'clojquery.core/env
(boolean (first (drop 3 env)))
=> false
Run Code Online (Sandbox Code Playgroud)

如果我将读取行中的字符串转换为第四个值,我将无法获得相同的行为:

(def env (do
           (println "Enter boolean: ")
           (let [in (read-line)]
             (concat [true true true] (map symbol (re-seq #"\w+" in))))))

Enter boolean: 
false
=> #'clojquery.core/env
(vec env)
=> [true true true false]
(first (drop 3 (vec env)))
=> false
(boolean (first (drop 3 env)))
=> true
(if (first (drop 3 (vec env))) "TRUE" "FALSE")
=> "TRUE"
Run Code Online (Sandbox Code Playgroud)

这不是很奇怪吗?感谢您的帮助!

boolean prompt vector clojure sequence

2
推荐指数
1
解决办法
160
查看次数

我们可以在 Haskell 中定义一类函数定义吗?

很抱歉我因为缺乏更好的词语而选择了这个标题。

这是我感兴趣的函数定义模式的典型示例:

h1 :: (Integer, Integer) -> Integer
h1 (x, 0) = f1 x
h1 (x, n) = g1 (x, n)

h2 :: (Integer, Integer) -> Integer
h2 (x, 0) = f2 x
h2 (x, n) = g2 (x, n)

h3 :: (Integer, Integer) -> Integer
h3 (x, 0) = f3 x
h3 (x, n) = g3 (x, n)



f1 :: Integer -> Integer
f1 x = x
g1 :: (Integer, Integer) -> Integer
g1 (x, n) = x

f2 …
Run Code Online (Sandbox Code Playgroud)

haskell design-patterns typeclass

1
推荐指数
1
解决办法
65
查看次数