说我想要a.x为每个元素求和arr.
arr = [{x:1},{x:2},{x:4}]
arr.reduce(function(a,b){return a.x + b.x})
>> NaN
Run Code Online (Sandbox Code Playgroud)
我有理由相信ax在某些时候是不确定的.
以下工作正常
arr = [1,2,4]
arr.reduce(function(a,b){return a + b})
>> 7
Run Code Online (Sandbox Code Playgroud)
我在第一个例子中做错了什么?
部分应用很酷.什么功能functools.partial提供你无法通过lambdas?
>>> sum = lambda x, y : x + y
>>> sum(1, 2)
3
>>> incr = lambda y : sum(1, y)
>>> incr(2)
3
>>> def sum2(x, y):
return x + y
>>> incr2 = functools.partial(sum2, 1)
>>> incr2(4)
5
Run Code Online (Sandbox Code Playgroud)
在functools某种程度上更有效,或可读?
有没有办法做这样的事情:
$test_array = array("first_key" => "first_value",
"second_key" => "second_value");
var_dump(array_map(function($a, $b) { return "$a loves $b"; },
array_keys($test_array),
array_values($test_array)));
Run Code Online (Sandbox Code Playgroud)
但是,而不是调用,array_keys并array_values直接传递$test_array变量?
所需的输出是:
array(2) {
[0]=>
string(27) "first_key loves first_value"
[1]=>
string(29) "second_key loves second_value"
}
Run Code Online (Sandbox Code Playgroud) 我目前正在研究React JS和React Native框架.当我读到Facebook的Flux和Redux实现时,在中途遇到Immutability或Immutable-JS库.
问题是,为什么不变性如此重要?变异对象有什么问题?它不简单吗?
举一个例子,让我们考虑一个简单的新闻阅读器应用程序,其中开始屏幕是新闻标题的列表视图.
如果我设置说最初具有值的对象数组,我无法操纵它.这就是不变性原则所说的,对吧?(如果我错了,请纠正我.)但是,如果我有一个必须更新的新的新闻对象怎么办?通常情况下,我可以将对象添加到数组中.在这种情况下我该如何实现?删除商店并重新创建它?是不是将一个对象添加到数组中的操作更便宜?
PS:如果这个例子不是解释不变性的正确方法,请让我知道什么是正确的实际例子.
javascript functional-programming immutability reactjs immutable.js
我正在玩Java SE 8中的惰性函数操作,我想要一个对/元组map的索引,然后基于第二个元素,最后只输出索引.i(i, value[i])filtervalue[i]
我是否仍然要忍受这个问题:Java中的C++ Pair <L,R>相当于什么?在lambdas和溪流的大胆新时代?
更新:我提供了一个相当简化的示例,其中有一个由@dkatzel提供的简洁解决方案,其中一个答案如下.但是,它没有概括.因此,让我添加一个更一般的例子:
package com.example.test;
import java.util.ArrayList;
import java.util.stream.IntStream;
public class Main {
public static void main(String[] args) {
boolean [][] directed_acyclic_graph = new boolean[][]{
{false, true, false, true, false, true},
{false, false, false, true, false, true},
{false, false, false, true, false, true},
{false, false, false, false, false, true},
{false, false, false, false, false, true},
{false, false, false, false, false, false}
};
System.out.println(
IntStream.range(0, …Run Code Online (Sandbox Code Playgroud) 任何人都可以给出一些指针,说明为什么Haskell中的不纯计算被建模为monad?
我的意思是monad只是一个有4个操作的界面,那么建模副作用的原因是什么呢?
Haskell中多核编程的现状如何?现在有哪些项目,工具和库?有什么经验报告?
parallel-processing concurrency haskell functional-programming multicore
我是下划线的新手.js.是什么目的[context]的_.each()?该如何使用?
我想创建一个显示来自数据库的一些数据的页面,所以我创建了一些从我的数据库中获取数据的函数.我只是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();
});
});
});
Run Code Online (Sandbox Code Playgroud)
如果有很多这样的函数,那么嵌套就成了问题.
有办法避免这种情况吗?我想这与你如何组合多个异步函数有关,这似乎是一个基本的东西.
是的,这些:
{-#LANGUAGE TypeOperators, RankNTypes #-}
import Control.Morphism.Zygo
import Control.Morphism.Prepro
import Control.Morphism.Histo
import Control.Functor.Algebra
import Control.Functor.Extras
import Control.Functor.Fix
import Control.Comonad.Cofree
zygohistomorphic_prepromorphism
:: Functor f
=> Algebra f b
-> GAlgebra f (ZygoT (Cofree f) b) a
-> (f :~> f)
-> FixF f
-> a
zygohistomorphic_prepromorphism f
= g_prepro (distZygoT (liftAlgebra f) (distHisto id))
Run Code Online (Sandbox Code Playgroud)
是的,我知道他们是(HHOS)的笑话.我正在寻找一个简单的黑客价值的真实世界的例子,最后,但并非最不重要的是,将它添加到维基说"这是表达XYZ的惯用方式".如果你没有提出解决方案,我会对此表示赏心悦目.如果你完全迷失了他们的意思,爱德华在reddit上发布了一个简短的解释.
符合条件的答案必须:
至少做一些远程的,理论上计算上有用的东西.也就是说,减少的答案id已经消失.
使用该方案的所有功能,不传入id,const或等效.
不能用简单的香草褶皱等表达,所以不要仅仅product以蜿蜒的方式实施.
奖励积分将给予:
众所周知的问题或算法
解决,分别表达,以一种不寻常的方式获得
清晰度和/或性能
和/或黑客价值
和/或lulz,大致按此顺序,以及
高级答案(耶和华民主)
请注意爱德华的答案如下.您使用的ZHPM实施是您的选择.
javascript ×4
haskell ×3
node.js ×2
asynchronous ×1
concurrency ×1
immutability ×1
immutable.js ×1
java ×1
java-8 ×1
java-stream ×1
lambda ×1
monads ×1
multicore ×1
php ×1
python ×1
reactjs ×1
reduce ×1
this ×1