我正在将一个二元组数组从一个域(日期)映射到另一个域(时间戳).不幸的是,它看起来像jQuery.map自动展平我返回的两元组,我没有看到do_not_flatten参数.
我是否遗漏了库中不会自动展平的其他内容?
附录:我认为我不应该使用Array.map,它不会自动展平,因为它是JavaScript 1.6.据我了解,jQuery应该抽象出我出于兼容性原因运行的JavaScript版本.
这些天我正在认真学习函数式编程.
虽然我对Haskell以及它似乎提供的可能性感到非常兴奋,但我现在也可以看到它需要一段时间来学习.在如何学习Haskell的SO问题中,一个答案表明,实际上"掌握"它需要几个月甚至几年.
现在,我知道C,PHP,一些面向对象的东西等等.并且被告知Haskell在"现实世界"中没有被广泛使用,我会更好地提高我所熟悉的常规语言的技能吗?哈斯克尔值得奋斗吗?
在这个问题上为什么人们认为函数式编程会得出结论似乎是函数式编程将"流行".但是程序编程肯定会保持领先,对吧?
编辑:keparo很好地澄清了我的问题:与过程语言相反,研究Haskell和函数式编程范例对我来说是否有价值?
有人可以解释什么是"不正确的清单"吗?
注意:谢谢大家!你们所有人摇滚!
基本上,我知道如何创建图形数据结构,并在允许副作用的编程语言中使用Dijkstra算法.通常,图算法使用一种结构将某些节点标记为"已访问",但这有副作用,我试图避免这种情况.
我可以想到一种在函数式语言中实现它的方法,但它基本上需要将大量的状态传递给不同的函数,我想知道是否有更节省空间的解决方案.
在纯函数式语言中,数据是不可变的.通过引用计数,创建引用周期需要更改已创建的数据.似乎纯函数式语言可以使用引用计数而不必担心循环的可能性.我是对的?如果是这样,他们为什么不呢?
我知道在许多情况下引用计数比GC慢,但至少它减少了暂停时间.如果暂停时间不好,可以选择使用引用计数.
garbage-collection functional-programming memory-management reference-counting purely-functional
我对那个函数式编程范例很陌生,但到目前为止我喜欢它.自从我进入游戏开发以来,我想尝试用纯函数编程风格编写一些游戏.我不介意语言 - 无论是Erlang,Haskell,Lisp,还是Ruby(我发现它支持函数式编程特性).
嗯,很明显,要学习函数式编程(事实上,任何事情),最好的建议就是学习函数式语言和编程.但我正在寻找的是在游戏和游戏引擎(2D或3D)中使用函数式编程的一些资源.
那么,你知道任何函数式编程文章/书籍/博客/在实际游戏中使用它,或者用函数式编程语言设计简单的游戏引擎,以及在这个功能环境中游戏和游戏引擎之间的所有交互吗?
请不要建议像"只是开始编写功能简单的东西,然后它会逐渐出现".正如我之前所说,很明显,但我在这里要求的是关于这个主题的一些资源,如果有的话.谢谢!
写作一个未经重构的命令和OO程序员......
最近和Erlang以及Haskell搞砸了.我喜欢Erlang,还不确定Haskell.功能似乎更像数学而不是编程,希望有意义.功能编程似乎非常强大.
阅读关于互动函数编程的文档我经常遇到"currying"这个词.我似乎只找到了一些有点过头的文档 - 很多术语都没有定义.
什么是currying?
我已经找了类似的已经发布的问题,但没有找到任何东西,所以请随意指出我已建立的线程.
在我第一次尝试创建功能代码时,我遇到了性能问题.
我从一个共同的任务开始 - 将两个数组的元素相乘并总结结果:
var first:Array[Float] ...
var second:Array[Float] ...
var sum=0f;
for (ix<-0 until first.length)
sum += first(ix) * second(ix);
Run Code Online (Sandbox Code Playgroud)
以下是我改革工作的方式:
sum = first.zip(second).map{ case (a,b) => a*b }.reduceLeft(_+_)
Run Code Online (Sandbox Code Playgroud)
当我对这两种方法进行基准测试时,第二种方法需要40倍的时间才能完成!
为什么第二种方法需要更长的时间?如何将工作改造为速度效率和使用函数式编程风格?
根据维基百科的副作用条目,提出异常构成副作用.考虑一下这个简单的python函数:
def foo(arg):
if not arg:
raise ValueError('arg cannot be None')
else:
return 10
Run Code Online (Sandbox Code Playgroud)
调用它将foo(None)始终遇到异常.相同的输入,相同的输出.它是参考透明的.为什么这不是一个纯粹的功能?
erlang ×2
haskell ×2
lisp ×2
scala ×2
currying ×1
graph ×1
jquery ×1
performance ×1
scheme ×1
side-effects ×1