Tag: 函数式编程

申请人撰写,monads不

申请人撰写,monads不。 上述说法是什么意思? 何时比其他人更喜欢?

Haskell入门

几天以来,我一直试图围绕Haskell的函数式编程范式进行研究。 我通过阅读教程和观看屏幕录像来完成这一任务,但似乎没有任何关系。 现在,在学习各种命令/ OO语言(如C,Java,PHP)时,练习对我来说是一个很好的方法。 但是由于我不了解Haskell的能力,而且有许多新的概念可以利用,所以我不知道从哪里开始。 那么,你是如何学习Haskell的? 是什么让你真的“破冰”? 另外,任何好的想法开始练习?

如何避免在Node.js中嵌套asynchronous函数

我想创build一个页面来显示数据库中的一些数据,所以我创build了一些从我的数据库中获取数据的函数。 我只是Node.js中的一个新手,所以据我所知,如果我想在单个页面中使用它们(HTTP响应),我必须将它们全部嵌套在一起: http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/html'}); var html = "<h1>Demo page</h1>"; getSomeDate(client, function(someData) { html += "<p>"+ someData +"</p>"; getSomeOtherDate(client, function(someOtherData) { html += "<p>"+ someOtherData +"</p>"; getMoreData(client, function(moreData) { html += "<p>"+ moreData +"</p>"; res.write(html); res.end(); }); }); }); 如果有这样的function,那么嵌套就成了一个问题 。 有没有办法避免这种情况? 我想这与你如何结合多个asynchronous函数有关,这似乎是一些基本的东西。

如何使用underscore.js作为模板引擎?

我试图了解JavaScript的新用法作为服务器端语言和function语言。 几天前我听说过node.js和expression框架。 然后我看到关于underscore.js作为一组实用函数。 我在stackoverflow上看到了这个问题 。 它说我们可以使用underscore.js作为模板引擎。 任何人都知道关于如何使用underscore.js进行模板的很好的教程,特别是对于那些对高级javascript没有经验的biginners。 谢谢

'封'和'lambda'有什么区别?

有人可以解释吗? 我了解他们背后的基本概念,但我经常看到他们互换使用,我感到困惑。 而现在我们在这里,它们与常规函数有什么不同呢?

什么是monad?

最近简单地看了一下Haskell,对于monad实际上是什么来说,简单,简洁,实用的解释是什么? 我发现我所遇到的大部分解释是相当无法访问的,缺乏实际的细节。

列表过滤:列表理解与lambda +filter

我碰巧发现自己有一个基本的过滤需求:我有一个列表,我必须通过项目的属性来过滤它。 我的代码看起来像这样: my_list = [x for x in my_list if x.attribute == value] 但是后来我想,这样写是不是更好? my_list = filter(lambda x: x.attribute == value, my_list) 它更具可读性,如果需要性能,lambda可以被拿出来获得一些东西。 问题是:在使用第二种方式时是否有任何警告? 任何性能差异? 我完全错过了Pythonic Way™,应该用另一种方式来做(比如使用itemgetter而不是lambda)?

使用带有lambda的JDK8压缩stream(java.util.stream.Streams.zip)

在带有lambda b93的JDK 8中,在b93中有一个java.util.stream.Streams.zip类,可用于压缩stream(这在“ 探索Java8 Lambdas第1部分”中由Dhananjay Nene说明 )。 这个function: 创build一个惰性的顺序组合stream,其元素是组合两个stream的元素的结果。 然而在B98中这个消失了。 事实上Streams类在b98的java.util.stream中甚至是不可访问的。 这个function是否已经被移动,如果是的话,我应该如何使用b98简洁地压缩数据stream? 我想到的应用程序是在这个沉的java实现 ,我在那里取代了zip的function static <T> boolean every(Collection<T> c1, Collection<T> c2, BiPredicate<T, T> pred) static <T> T find(Collection<T> c1, Collection<T> c2, BiPredicate<T, T> pred) function相当详细的代码(它不使用b98的function)。

什么是“Currying”?

我已经在几篇文章和博客中看到了curried函数的引用,但我找不到一个好的解释(或者至less有一个是合理的!)

Javascript的等效Python的zip函数

是否有一个Python的zipfunction的JavaScript等价物? 也就是说,给定两个长度相等的数组创build一个数组对。 例如,如果我有三个看起来像这样的数组: var array1 = [1, 2, 3]; var array2 = ['a','b','c']; var array3 = [4, 5, 6]; 输出数组应该是: var output array:[[1,'a',4], [2,'b',5], [3,'c',6]]