functional-programming相关内容
我觉得这很有趣,而不是任何事情。我已经修复了,但我想知道原因。这是错误: DataManager.swift:51:90:表达式太复杂,无法在合理的时间内解决;考虑将表达式分解成不同的子表达式。它为什么抱怨?它似乎是最简单的表达式之一。 编译器指向列+“);”; section func tableName() - > String {return(“users”); } f
..
我创建了一个lambda函数,用一个具体的参数执行第二个函数。这个代码在Firefox中工作,但不在Chrome中,它的检查器显示一个奇怪的错误, Uncaught TypeError:非法调用。我的代码有什么问题? var make = function(callback,params){ callback(params); } make(console.log,'it wi
..
我试图在R中找到惯用的方式来通过某个索引向量对数值向量进行分区,找到该分区中所有数字的总和,然后将每个条目除以该分区总和。换句话说,如果我从这开始: df 我希望输出创建一个向量(让我们称它为z): (1 + 2),2 /(1 + 2),3 /(3 + 4),3 /(3 + 4),5 /(5 + 6),6 / (5 + 6)) 如果我这样做是SQL并且
..
部分应用很酷。 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(
..
几天来,我试图围绕Haskell中的函数式编程范例进行研究。我通过阅读教程和观看截屏视频来完成这一任务,但似乎没有任何关系。 现在,在学习各种命令/ OO语言(如C,Java,PHP)时,练习对我来说是一个好方法。但是由于我并不真正了解Haskell的能力,并且有许多新的概念可供使用,所以我不知道从哪里开始。 你学习了Haskell吗?是什么让你真的“破冰”?此外,任何好的想法开始练习?
..
我试图了解JavaScript的新用法作为服务器端语言和功能语言。几天前我听说过node.js和表达框架。然后我将underscore.js看作一组实用函数。我在 stackoverflow 上看到了这个问题。它说我们可以使用underscore.js作为模板引擎。任何人都知道关于如何使用underscore.js进行模板化的好教程,特别是对于那些对高级javascript没有经验的biginn
..
在最近简单介绍了Haskell之后,简单,简洁,实用的解释是什么monad实质上是什么? 我发现我所遇到的大部分解释是相当难以获得的,并且缺乏实际的细节。 解决方案 如果你不是数学家,monad 有点空虚。另一个术语是计算构建器,它对它们实际上有用的内容进行了更详细的描述。 你问一些实际的例子: p> 示例1:列表理解: [x * 2 | x 这个表达式
..
我已阅读关于响应式编程的维基百科文章。我还阅读了关于功能性响应式编程的小文章。这些描述非常抽象。 功能性反应式编程(FRP)在实践中意味着什么? 反应式编程(与非反应式编程相反)包含什么? 我的背景是命令式的/面向对象语言,所以我们将赞赏与这种范式相关的解释。 $ b 解决方案 如果你想感受FRP,你可以从旧的弗兰教程从1998年,它具有动画插图。有关论文,请从 功能性动画动画
..
我问了一个关于柯里和封闭的问题。 什么是封闭?它与currying有什么关系? 解决方案 变量范围 当你声明一个局部变量,该变量有一个范围。通常局部变量只存在于声明它们的块或函数中。 function(){ var a = 1; console.log(a); //作品 } console.log(a); //失败 如果我尝试访问局部变量,大多数语
..
我了解Ruby和Python的收益率。 Scala的收益率是什么? 解决方案 它用于 sequence comprehensions (比如Python的列表解析和生成器,也可以使用 yield )。 p> 它与结合用于,并在结果序列中写入一个新元素。 简单示例(来自 scala-lang ) / **将命令行参数转换为大写* / 对象Main { def main
..
举例来说, cartesian([1,2],[10,20],[100,200,300])//应该是 // [[1,10,100],[1,10,200], [1,10,300],[2,10,100],[2,10,200] ...] 解决方案 使用 reduce 和解决问题的功能性解决方案(不含可变变量!) c $ c> flatten ,由 underscore.js 提供
..
在带lambda b93的JDK 8中,有一个类 java.util在b93中的.stream.Streams.zip 这可以用于压缩流(这在教程中进行了说明探索Java8 Lambdas。第1部分Dhananjay Nene )。此函数: 创建一个惰性和顺序组合的Stream,其元素是组合两个流的元素的 结果。 / p> 然而在b98中这个消失了。事实上, Streams 类甚至在
..
是否有与Python的zip函数相当的javascript?也就是说,给定两个长度相等的数组创建一个数组对。 例如,如果我有三个看起来像这样的数组: var array1 = [1,2,3]; var array2 = ['a','b','c']; var array3 = [4,5,6]; 输出数组应该是: var output array:[[
..
我在几篇文章和博客中看到了curried函数的引用,但是我找不到一个好的解释(或者至少有一个是合理的!) 解决方案Currying是当你分解一个函数,它将多个参数放入一系列包含参数的函数中。下面是JavaScript中的一个例子: $ b function add(a, b){ return a + b; } add(3,4); //返回7 这是一个函
..
我的一个程序的开始会导致错误。这是问题领域。我试图定义一个变量作为递归函数的结果。 (define(test n) ( define(a1func i) (if(= i 1)0 (+(/ 1 i)(a1func( - i 1))))) (define a1(a1func( - 如果你要给它说(test()),那么你可以使用 10)错误是: lockquote 程序应用程序:期望
..
Mathematica有一个内置函数 ArgMax ,用于无限域上的函数,基于标准数学定义。 有限域的模拟是一个方便的效用函数。 给定一个函数和一个列表(称之为函数的域),返回列表中最大化该函数的元素。 下面是一个有限argmax的例子: Canonicalize NFL team名称 这里是我的实现(和argmin一样好): (* argmax [f,domain]返回
..
调用函数的方法 考虑这个简单的函数: function my(p){console.log(p)} 我可以这样称呼它: my(“Hello”); 同样如此: my.call(this,“Hello”); 此外,这是可能的: Function.prototype.call.call(my,this,“H
..
函数setStyle(x){ with(x.style){ padding ='10px' marginBottom ='10px' width ='100%' } 返回setStyle } setStyle(帐户)(密码)(登录) 我经常使用上述模式,但是当我需要谈论它时,我不知道它叫什么。如何在交谈中引用这种方法? 更新: 有人将此问题视
..
维基百科文章功能组合(计算机科学)说: 像数学中通常的函数组合一样,每个函数的结果都作为下一个的参数传递,最后一个的结果是 我有两个问题: 一个可组合的函数必须同时具有参数和返回值吗? 所以下面的函数不是: def doNothing():Unit =() def myName():String =“我的名字” def eat(food:String ):Uni
..
函数标识(值){ 返回值; $ b $ p $ b原因是我经常需要区分原始类型( undefined , null ,布尔值, code>和 string )和对象类型( object 和 function >)由 typeof 运算符返回。我觉得使用这个用例的indentity函数非常简单: if(new identity(value)== value); // v
..