标签: functional-programming

lapply和do.call有什么区别?

我最近在学习R并且被两个函数混淆了:lapplydo.call.它们似乎与mapLisp中的函数类似.但为什么有两个具有不同名称的函数?为什么R只使用一个叫做的函数map

functional-programming r

130
推荐指数
7
解决办法
6万
查看次数

为什么λ演算最优评估器能够在没有公式的情况下计算大的模幂运算?

教会号码是自然数字作为函数的编码.

(\ f x ? (f x))             -- church number 1
(\ f x ? (f (f (f x))))     -- church number 3
(\ f x ? (f (f (f (f x))))) -- church number 4
Run Code Online (Sandbox Code Playgroud)

整齐地说,你可以通过应用它们来取代2个教会数字.也就是说,如果你申请4到2,你就得到教会号码16,或者2^4.显然,这完全是不切实际的.教会数字需要一定数量的记忆,而且非常非常慢.像10^10GHCI快速正确回答的类似计算的东西需要很长时间,无论如何都无法适应你计算机上的内存.

我最近一直在尝试最佳的λ评估员.在我的测试中,我不小心在我的最佳λ计算器上键入了以下内容:

10 ^ 10 % 13
Run Code Online (Sandbox Code Playgroud)

它应该是乘法,而不是取幂.在我绝望地移动我的手指中止永久运行的程序之前,它回答了我的要求:

3
{ iterations: 11523, applications: 5748, used_memory: 27729 }

real    0m0.104s
user    0m0.086s
sys     0m0.019s
Run Code Online (Sandbox Code Playgroud)

随着我的"错误警报"闪烁,我去谷歌并确认了10^10%13 == 3.但是λ计算器不应该找到那个结果,它几乎不能存储10 ^ 10.对于科学,我开始强调它.这立刻回答我20^20%13 == 3,50^50%13 == …

algorithm haskell functional-programming lambda-calculus modular-arithmetic

130
推荐指数
2
解决办法
4951
查看次数

什么是Haskell的"提升"?

我不明白"提升"是什么.在了解"电梯"是什么之前我应该​​先了解单子吗?(我对monads也完全无知:)或者有人可以用简单的词语向我解释一下吗?

haskell functional-programming

129
推荐指数
4
解决办法
3万
查看次数

使用python map和其他功能工具

这非常难以理解,但我正在尝试学习/理解python中的函数式编程.以下代码:

foos = [1.0,2.0,3.0,4.0,5.0]
bars = [1,2,3]

def maptest(foo, bar):
    print foo, bar

map(maptest, foos, bars)
Run Code Online (Sandbox Code Playgroud)

生产:

1.0 1
2.0 2
3.0 3
4.0 None
5.0 None
Run Code Online (Sandbox Code Playgroud)

问:有没有办法在python中使用map或任何其他功能工具来生成以下没有循环等.

1.0 [1,2,3]
2.0 [1,2,3]
3.0 [1,2,3]
4.0 [1,2,3]
5.0 [1,2,3]
Run Code Online (Sandbox Code Playgroud)

正如附注所示,如果foo和bar之间存在依赖关系,实现将如何变化.例如

foos = [1.0,2.0,3.0,4.0,5.0]
bars = [1,2,3,4,5]
Run Code Online (Sandbox Code Playgroud)

并打印:

1.0 [2,3,4,5]
2.0 [1,3,4,5]
3.0 [1,2,4,5]
...
Run Code Online (Sandbox Code Playgroud)

PS:我知道如何使用if,循环和/或生成器天真地做,但我想学习如何使用功能工具实现相同的功能.是仅仅在maptest中添加if语句或在maptest内部将另一个过滤器映射应用于条形图的情况?

python dictionary functional-programming

127
推荐指数
7
解决办法
22万
查看次数

无状态编程的优点?

我最近一直在学习函数式编程(特别是Haskell,但我也经历过关于Lisp和Erlang的教程).虽然我发现这些概念非常具有启发性,但我仍然没有看到"无副作用"概念的实际方面.它有什么实际优势?我试图在功能思维中思考,但是有些情况看起来过于复杂而没有能够以简单的方式保存状态(我不认为Haskell的monad'容易').

是否值得继续深入学习Haskell(或其他纯函数式语言)?功能性或无状态编程实际上是否比程序性更高效?我以后可能继续使用Haskell或其他功能语言,还是应该仅仅为了理解而学习它?

我更关心性能而不是生产力.所以我主要问的是我是否会在函数式语言中比在程序/面向对象/其他方面更高效.

state functional-programming immutability

127
推荐指数
8
解决办法
5万
查看次数

如何使用ImmutableJS更新List中的元素?

这是官方文档所说的

updateIn(keyPath: Array<any>, updater: (value: any) => any): List<T>
updateIn(keyPath: Array<any>, notSetValue: any, updater: (value: any) => any): List<T>
updateIn(keyPath: Iterable<any, any>, updater: (value: any) => any): List<T>
updateIn(keyPath: Iterable<any, any>, notSetValue: any, updater: (value: any) => any): List<T>
Run Code Online (Sandbox Code Playgroud)

普通的Web开发人员(非功能程序员)无法理解这一点!

我非常简单(对于非功能性方法)的情况.

var arr = [];
arr.push({id: 1, name: "first", count: 2});
arr.push({id: 2, name: "second", count: 1});
arr.push({id: 3, name: "third", count: 2});
arr.push({id: 4, name: "fourth", count: 1});
var list = Immutable.List.of(arr);
Run Code Online (Sandbox Code Playgroud)

如何更新list名称为third的元素的计数设置为 …

javascript functional-programming immutable.js

126
推荐指数
5
解决办法
7万
查看次数

我为什么要学习Lisp?

我真的觉得我应该学习Lisp,并且有很多很好的资源可以帮助我做到这一点.

我不会被复杂的语法所拖延,但在"传统的商业编程"中我会找到使用它而不是过程语言的地方.

是否有一个用Lisp编写的商业杀手应用程序?

lisp functional-programming

125
推荐指数
14
解决办法
5万
查看次数

在Swift中使用索引进行映射或缩小

有没有办法在Swift 中mapreduce在Swift中获取数组的索引?我正在寻找像each_with_indexRuby 这样的东西.

func lunhCheck(number : String) -> Bool
{
    var odd = true;
    return reverse(number).map { String($0).toInt()! }.reduce(0) {
        odd = !odd
        return $0 + (odd ? ($1 == 9 ? 9 : ($1 * 2) % 9) : $1)
    }  % 10 == 0
}

lunhCheck("49927398716")
lunhCheck("49927398717")
Run Code Online (Sandbox Code Playgroud)

我想摆脱上面odd变量.

functional-programming swift

124
推荐指数
3
解决办法
4万
查看次数

第一类功能和高阶功能之间的任何区别

我想知道第一类功能高阶功能之间是否存在差异.

我仔细阅读了这两个维基页面,看起来非常相似.如果他们谈论相同,为什么需要两个术语?

尝试谷歌但没有找到任何有用的东西.

functional-programming terminology

123
推荐指数
4
解决办法
3万
查看次数

什么是Hindley-Milner?

我遇到了这个术语Hindley-Milner,我不确定是否掌握了它的含义.

我看过以下帖子:

但是维基百科中没有单一的条目,通常会给我一个简明的解释.
注意 - 现在添加了一个

它是什么?
哪些语言和工具实现或使用它?
你能提供一个简明的答案吗?

types functional-programming inference hindley-milner

121
推荐指数
3
解决办法
2万
查看次数