functional-programming相关内容
Scala中以下两个函数定义的区别: $ b def sum(f:Int => Int) (a:Int,b:Int):Int = { } def sum(f:Int => Int,a:Int,b:Int) :Int = { } ? SBT的控制台REPL为它们提供了不同的值,他们是不同的: $ b $ p sum:(f:Int => Int,a:Int
..
我正在学习大学的Programming Paradigms,并阅读由演讲者提供的课程材料,它以这种方式定义了一个函数: val double =(x:Int)=> 2 * x double:Int => Int = 但是从我自己的研究中,我发现并习惯于像这样定义相同的函数: def d(x:Int)= 2 * x d:(x:Int)
..
我明白为什么功能组成很重要。它允许从小而简单的构建大型复杂的函数。 val f:A => B = ... val g:B => C = ... val h = f and Then g; //构成f和g 此构图符合 identity 和 associativity 定律 Associativity 非常有用,因为它允许将 f1和then f2和t
..
如果递归几乎清除,例如 def product2(ints:List [Int]):Int = { @tailrec def productAccumulator(ints:List [Int],accum:Int):Int = { ints match { case Nil => accum case x :: tail => productAccumulator(tail
..
在此评论中,有人表示Ruby没有功能,只有方法。如果Ruby没有函数,是不是可以在其中进行函数式编程?或者我对术语“功能”感到困惑? 我的意思是“函数式编程”,意思是作为第一类对象,而不是禁止可变状态。 / p> 解决方案 是的。方法vs函数是一个很好的区别。 很容易将每个特定的方法实现视为一个函数;只要把它作为一个额外的参数调用该方法的对象(如果你的语言没有明确地传递它;不太
..
当我试图以一种无点功能的风格编程时,“点符号”与对象和记录一起工作时,我受到了阻碍(我认为这是一种非常简洁的方式来使用功能性语言, )。 是否有一个运算符或函数我错过了,可以让我执行如下操作: (。)object method 而不是 object.method ? ?运算符,我认为它是这样工作的,除了它需要定义并进入整个动态绑定的东西,我不认为我需要它。) 换句话说,我是否可
..
在Swift中,递归对全局函数来说是微不足道的。例如: func f() { f() } 然而,闭包不能引用自身。例如: var f:(Void - > Void)= { f() } 会产生以下错误: 在其初始值中使用的变量 一个解决方法呢?如何创建一个递归闭包 inline ? 解决方案 有一个解决方法
..
在阅读本博客Funators的描述时: https://hseeberger.wordpress.com/2010/11/25/introduction-to-category-theory-in-scala/ 有一个通用定义的Functor和一个更具体的定义: trait GenericFunctor [ - >> [_,_], - >>> [_,_],F [_]] { d
..
Python 3.2文档指的是 Collin Winter的功能模块,其中包含函数 compose : compose()函数实现函数组合。在其他 字词中,它会返回一个包裹外部和内部可调用对象的包装,例如 ,从内部返回的值将直接传递给outer。 不幸的是,这个模块自2006年7月以来一直没有更新;现在,我只需要 compose 函数。现在,我只需要 compose 函数。下面的原
..
我试图弄清楚如何在一行中编写递归函数(例如阶乘,尽管我的函数更复杂)。为此,我考虑使用 Lambda微积分 Y combinator 。 以下是第一个定义: Y =λf。(λx.f(xx))(λx.f(xx)) 下面是精简定义: Y g = g(Y g) 我试图用C#编写它们: p> //原始 Lambda Y = f => (新
..
我正在学习Swift lang,但是我无法将可选的回调参数传递给函数: func dismiss(completion: ) - > Void){ if(completion){ return self.dismissViewControllerAnimated(true,completion:completion) } self.dismissModalViewControlle
..
我正在阅读关于Haskell的这篇教程。他们将函数组合定义如下: (。)::(b-> c ) - > (a-> b) - > (a-> c) f。 g = \ x - > f(gx) 没有提供任何示例,我相信这些示例会启发我关于正在定义的内容在这里。 有人可以提供一个简单的例子(解释)如何使用函数组合? 解决方案 功能组合是将两个功能“组合”为一个功能的
..
我目前正在做一个函数式编程课程,我很喜欢高级函数和函数作为一等公民的概念。然而,我还不能想到许多实际上有用的,概念上的惊人的,或者仅仅是简单有趣的高阶函数。 (除了典型的和非常枯燥的 map , filter 等函数)。 您知道这些有趣功能的例子吗?函数,返回函数列表的函数(?)等。 我很欣赏Haskell中的例子,这是我目前学习的语言:)那么你注意到Haskell没有循环的语法吗?没
..
着色问题: 你好,我试图实现一个bool函数,当一个颜色可以扩展到一个国家时返回true,否则返回false,因为我们不能模式匹配他们... ... 我的代码: type Country = string ;; type Chart = Set
..
问题是:何时使用私有函数以及何时使用嵌套函数? (我问的是 F#,但也许答案可能与其他功能语言相关) 一个小例子 namespace SomeName 模块BinaryReaderExt = 打开System.IO let seek(reader :BinaryReader)positions = reader.BaseStream.Seek(positio
..
例如,假设我们有函数 double(x)= 2 * x , square(x)= x ^ 2 和 sum(x,y)= x + y 。什么是 compose ,比如 compose(compose(sum,square),double)= x ^ 2 + 2 * x ?注意我正在问一个可以用于任何元素的函数的函数。例如,你可以用 g(x), f(x,y,z) (x),h(x),h(x), i(x)
..
我是Scala的新手,能够将函数传递给其他函数非常简洁 - 但我可以将任意函数引用传递给另一个函数吗?所述函数参数的参数将是固定的(也就是说,我也很好奇你是否可以传递任意函数的函数)。我一直因为类型错误而被绊倒。我已经尝试使用任何但它似乎没有帮助。 例如,我有下面的代码: class CodeRunner(val user_defined:(Int)=> Unit){ def ru
..
在Python中,我想写一个函数 make_cylinder_volume(r),它返回另一个函数。返回的函数应该可以用参数 h 来调用,并返回高度为 h 和半径 r 。 我知道如何从Python中的函数返回值我返回另一个函数? 解决方案 b 导入数学 def make_cylinder_volume_func(r): def volume(h): return math.
..
有时,当我阅读Scala生态系统中的文章时,我读到了“提升”/“提升”的术语。不幸的是,它没有解释到底是什么意思。我做了一些研究,似乎解除与功能值或类似的东西有关,但我无法找到一个文本解释以新手友好的方式实际提升的内容。 电梯框架,它的名字取消了,但并没有帮助回答这个问题。 什么是Scala中的“提升”? 解决方案 有几个用法: $ b PartialFunction
..
例如: #include typedef void(* proto_1)(); typedef void proto_2(); void my_function(int j){ printf(“hello from function。我得到%d.\\\ ”,j); } void call_arg_1(proto_1 arg){ arg(5); }
..