标签: functional-programming

Javascript减少了对象数组

说我想要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)

我在第一个例子中做错了什么?

javascript reduce functional-programming node.js

190
推荐指数
8
解决办法
15万
查看次数

Python:为什么functools.partial是必要的?

部分应用很酷.什么功能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某种程度上更有效,或可读?

python functional-programming partial-application

183
推荐指数
6
解决办法
4万
查看次数

PHP的array_map包括键

有没有办法做这样的事情:

$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_keysarray_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)

php functional-programming

179
推荐指数
7
解决办法
23万
查看次数

为什么JavaScript中的不变性如此重要(或需要)?

我目前正在研究React JSReact Native框架.当我读到Facebook的Flux和Redux实现时,在中途遇到Immutability或Immutable-JS库.

问题是,为什么不变性如此重要?变异对象有什么问题?它不简单吗?

举一个例子,让我们考虑一个简单的新闻阅读器应用程序,其中开始屏幕是新闻标题的列表视图.

如果我设置说最初具有值的对象数组,我无法操纵它.这就是不变性原则所说的,对吧?(如果我错了,请纠正我.)但是,如果我有一个必须更新的新的新闻对象怎么办?通常情况下,我可以将对象添加到数组中.在这种情况下我该如何实现?删除商店并重新创建它?是不是将一个对象添加到数组中的操作更便宜?

PS:如果这个例子不是解释不变性的正确方法,请让我知道什么是正确的实际例子.

javascript functional-programming immutability reactjs immutable.js

176
推荐指数
7
解决办法
3万
查看次数

Java SE 8是否有Pairs或Tuples?

我正在玩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)

java lambda functional-programming java-8 java-stream

174
推荐指数
8
解决办法
19万
查看次数

为什么在Haskell中将副作用建模为monad?

任何人都可以给出一些指针,说明为什么Haskell中的不纯计算被建模为monad?

我的意思是monad只是一个有4个操作的界面,那么建模副作用的原因是什么呢?

monads haskell functional-programming

164
推荐指数
5
解决办法
2万
查看次数

Haskell中多核编程的现状如何?

Haskell中多核编程的现状如何?现在有哪些项目,工具和库?有什么经验报告?

parallel-processing concurrency haskell functional-programming multicore

161
推荐指数
1
解决办法
1万
查看次数

_.each(list,iterator,[context])中的上下文是什么?

我是下划线的新手.js.是什么目的[context]_.each()?该如何使用?

javascript functional-programming this underscore.js

161
推荐指数
4
解决办法
16万
查看次数

如何避免在Node.js中长时间嵌套异步函数

我想创建一个显示来自数据库的一些数据的页面,所以我创建了一些从我的数据库中获取数据的函数.我只是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)

如果有很多这样的函数,那么嵌套就成了问题.

有办法避免这种情况吗?我想这与你如何组合多个异步函数有关,这似乎是一个基本的东西.

javascript asynchronous functional-programming node.js

156
推荐指数
8
解决办法
6万
查看次数

颧弓形态前同态的真实应用

是的,这些:

{-#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上发布了一个简短的解释.

符合条件的答案必须:

  1. 至少做一些远程的,理论上计算上有用的东西.也就是说,减少的答案id已经消失.

  2. 使用该方案的所有功能,不传入id,const或等效.

  3. 不能用简单的香草褶皱等表达,所以不要仅仅product以蜿蜒的方式实施.

奖励积分将给予:

  • 众所周知的问题或算法

  • 解决,分别表达,以一种不寻常的方式获得

  • 清晰度和/或性能

  • 和/或黑客价值

  • 和/或lulz,大致按此顺序,以及

  • 高级答案(耶和华民主)

请注意爱德华的答案如下.您使用的ZHPM实施是您的选择.

haskell functional-programming category-theory

155
推荐指数
2
解决办法
1万
查看次数