我是Clojure的新手。
我正在开发井字游戏
我正在尝试制作一个“格式化”面板的功能,该功能是一张以位置编号作为键,关键字:x :o和:e值(:e表示空)的地图。
我想在关键字名称列表中每3插入一个换行符。
例如,"x" "x" "x" "e" "e" "e" "e" "e" "e"应将其转换为,"x" "x" "x" "\n" "e" "e" "e" "\n" "e" "e" "e"然后将这些字符串连接起来,以便可以打印它。
(defn- newline-every
[n list]
(if (empty? list)
[]
(let [[fst snd] (split-at n list)]
(concat
(conj fst "\n")
(newline-every n snd)))))
Run Code Online (Sandbox Code Playgroud) 我正在尝试用我的玩具项目学习Scalaz,我在Haskell中使用monad,现在我想学习如何在Scala中使用Scalaz.
最大的问题是,如何IO()在Scala的主要方法中使用Monad?
在Haskell中,主要功能是类型,IO()而在Scala中它是类型().
到目前为止我找到的解决方案是创建另一个foo类型的函数IO()并在main方法调用中foo.unsafePerformIO().但这让我感到畏缩.
什么可以解决方案?