我一直听说Erlang是一种函数式语言,但很容易从函数中调用数据库或非副作用的免费代码,并且命令很容易通过在它们之间使用","逗号,就像Ruby或其他语言一样,那么Erlang的"功能"部分在哪里?
在Clojure中,测试nil的惯用方法是什么,如果有什么东西是零,那么替换一个值?
例如,我做了很多:
let [ val (if input-argument input-argument "use default argument")]
Run Code Online (Sandbox Code Playgroud)
:但我觉得重复两次必须使用"输入参数".
我正在寻找一个最终一致的数据存储,看起来它可能会落到Riak或Cassandra.有没有人对这个观点有所了解?
我目前正在使用
c(module_name)
Run Code Online (Sandbox Code Playgroud)
逐个构建我的Erlang文件.如果Erlang的构建过程有多个文件,它们如何处理?
我想使用YAML,但Erlang没有一个成熟的YAML库.我知道有一些JSON库,但是想知道哪个是最成熟的?
我听说过最小化代码和最大化数据的概念,并且想知道其他人在构建我自己的系统时可以给我如何/为什么要这样做的建议?
我希望创建一个表示数据库表的抽象,但可以使用所有常用的Clojure seq和conj以及所有那些花哨的东西来访问它.我需要添加一个协议吗?
如果我有一个Vector:
[1 2 3 4 5 6 7 8 9]
Run Code Online (Sandbox Code Playgroud)
:我想用0替换5给出:
[1 2 3 4 0 6 7 8 9]
Run Code Online (Sandbox Code Playgroud)
当我只知道索引是4时,我怎么能这样做?
就像是:
(replace-in-vec [1 2 3 4 5 6 7 8 9] 4 0)
Run Code Online (Sandbox Code Playgroud) 我正在编写一个使用STM的clojure程序.目前,我在数据库启动时填充STM(使用refs),然后在dosync事务成功时异步更新数据库.我不知道我是否以正确的方式这样做,或者是否有更好的标准技术来做到这一点.谁能向我解释他们如何在他们的Clojure程序中将STM的ACI属性变成ACID?
我有一组这样的地图:
#{
{:name "a" :value "b" ... more stuff here}
{:name "b" :value "b" ... more stuff here}
{:name "b" :value "b" ... more stuff here}
{:name "a" :value "b" ... more stuff here}
{:name "c" :value "b" ... more stuff here}
{:name "a" :value "b" ... more stuff here}
}
Run Code Online (Sandbox Code Playgroud)
:我想要一个有序列表,就像sql order-by name:
[
{:name "a" :value "b" ... more stuff here}
{:name "a" :value "b" ... more stuff here}
{:name "a" :value "b" ... more stuff here}
{:name …Run Code Online (Sandbox Code Playgroud)