标签: functional-programming

实现'函数调用函数'

我想编写一些调用给定参数指定的函数的代码.例如:

def caller(func):
    return func()
Run Code Online (Sandbox Code Playgroud)

然而,我还想做的是为'caller'函数指定可选参数,以便'caller'使用指定的参数调用'func'(如果有的话).

def caller(func, args):
# calls func with the arguments specified in args
Run Code Online (Sandbox Code Playgroud)

有一种简单的pythonic方法吗?

python functional-programming function

0
推荐指数
2
解决办法
380
查看次数

如何确定Haskell中常量表达式的类型?

我正在尝试修改我的函数式编程考试,并且对过去论文的第一个问题感到困惑,是的,我们不允许使用解决方案表,这里是过去论文中第一个问题的示例.

对于以下每个表达式,在Haskell中给出其类型(对于具有多种类型的表达式,只需给出一种类型).

(True, "hello", 42)
[42, 4, 2]
length [True]
filter even
Run Code Online (Sandbox Code Playgroud)

我个人认为,对于一个和两个的答案将是bool,String和int的元组以及一个int的列表,这是正确的假设吗?第二,你如何回答3和4,我确定长度为True只输出一个具有该长度的所有元素的列表,并且该过滤器甚至只是将一个int列表更改为所有偶数的列表,尽管如何我可以将此作为答案吗?

haskell types functional-programming

0
推荐指数
1
解决办法
857
查看次数

jquery将自己的事件/函数添加到所选的html元素中?

是否可以添加元素类型或css选择自己的事件函数?

就像是:

$("a").bind("blub", function() { alert("aaa" + this); });

$("a").get(0).blub();
Run Code Online (Sandbox Code Playgroud)

我想定义一些仅适用于某些特殊元素的函数,例如:

<div class ="myDivContainer"> ... </ div>应该具有以下功能:

$("myDivContainer").get(0).blub();
Run Code Online (Sandbox Code Playgroud)

但也许:

$("myDivSeparator").get(0).blub(); 
Run Code Online (Sandbox Code Playgroud)

这应该不起作用,因为它没有为它定义

这可能吗?!

jquery events functional-programming function

0
推荐指数
1
解决办法
789
查看次数

这种scala语法是什么意思?

有人可以解释一下(p:Char => Boolean)的意思吗?如何使用该参数?

def search(p: Char => Boolean): Boolean = {

}
Run Code Online (Sandbox Code Playgroud)

functional-programming scala

0
推荐指数
1
解决办法
86
查看次数

具有多个参数的列表理解

为什么我不能在Haskell中这样做?

[a * b | a <- [0..b], b <- [0..10]]

error: Variable not in scope: b
Run Code Online (Sandbox Code Playgroud)

如果使用列表理解是不可能的?还是我可以做些什么来达到目标​​?

haskell functional-programming list-comprehension

0
推荐指数
1
解决办法
92
查看次数

无法制作简单的无标签最终示例

我读过有关无标签决赛的内容,我认为这很棒。我想建立自己的这种模式的小例子,并解决了问题。

这是我的代码:

  trait Calculator[F[_]] {
    def sum(a: Int, b: Int): F[Either[Throwable, Int]]
    def minus(a: Int, b: Int): F[Either[Throwable, Int]]
  }

  object calculatorInstances {
    implicit val futureCalculator: Calculator[Future] = new Calculator[Future] {
      override def sum(a: Int, b: Int) =
        Future {
          Try(a + b).toEither
        }
      override def minus(a: Int, b: Int) =
        Future {
          Try(a - b).toEither
        }
    }
  }


  import calculatorInstances.futureCalculator
  def getPlusAndMinus[F[_]: Monad: Calculator](a: Int, b: Int): F[Either[String, Int]] = {
    for {
      sum <- Calculator[F].sum(a, b)
      res <- …
Run Code Online (Sandbox Code Playgroud)

functional-programming scala scala-cats tagless-final

0
推荐指数
1
解决办法
90
查看次数

是ha句柄还是lambda函数(或两者)?

我正在从Haskell Wikibook看一个简单的IO程序。该页面上显示的构造效果很好,但是我试图理解“如何”。

writeChar下面的函数采用一个文件路径(作为字符串)和一个字符,并将该字符写入给定路径的文件中。该函数使用括号来确保文件正确打开和关闭。在方括号中进行的三个计算中,“在中间进行运算”(据我所知)是一个lambda函数,可返回的结果hPutChar h c

现在,hPutChar它本身具有的声明hPutChar :: Handle -> Char -> IO ()。这是我迷路的地方。我似乎已经过关hhPutChar。我希望一个句柄能以某种方式引用打开的文件fp,但相反,它似乎是递归调用lambda函数\h。我没有看到这个lambda函数调用自身递归是如何知道写c在文件fp

我想了解为什么不应该阅读此函数的最后一行(\h -> hPutChar fp c)。尝试以这种方式运行它会导致“无法将类型'[Char]'与'Handle'匹配”,鉴于hPutChar期望使用Handle数据类型而不是字符串,因此我认为这是明智的。

import Control.Exception
writeChar :: FilePath -> Char -> IO ()
writeChar fp c =
    bracket
      (openFile fp WriteMode)
      hClose
      (\h -> hPutChar h c)
Run Code Online (Sandbox Code Playgroud)

syntax lambda haskell functional-programming io-monad

0
推荐指数
1
解决办法
99
查看次数

如何从1 .... n生成自然数列表?

我目前正在尝试在函数内部生成列表。用户将传入一个参数,该参数将是Int。该函数的工作是生成一个列表,从开始1,一直到n。所以列表看起来像

[1....n]
Run Code Online (Sandbox Code Playgroud)

到目前为止,我所做的是:

iterate (+1) 1
Run Code Online (Sandbox Code Playgroud)

尽管这提供了正确的模式,但它会永远持续下去。我怎么能停在n?另外,我如何能够'1'在列表的末尾附加这样的内容:

[1...n,1]
Run Code Online (Sandbox Code Playgroud)

haskell functional-programming function list

0
推荐指数
1
解决办法
92
查看次数

无法在Haskell中导入Data.Stream

为什么不能在Haskell中导入Data.Stream?

Prelude> import Data.Stream

<no location info>: error:
    Could not find module ‘Data.Stream’
    Perhaps you meant Data.String (from base-4.12.0.0)
Run Code Online (Sandbox Code Playgroud)

haskell functional-programming haskell-stack

0
推荐指数
1
解决办法
74
查看次数

如何在Haskell中通过列表理解来重新创建“ take”功能?

下面的代码通过递归在Haskell中重新创建“ take”函数:

take' :: Int->[a]->[a]
take' 0 _=[]
take' _ []= []
take' n (x:xs)=x : take' (n-1) xs
Run Code Online (Sandbox Code Playgroud)

我想使用列表理解来创建'take'函数:

take' n a=[x|x<-a]
Run Code Online (Sandbox Code Playgroud)

recursion haskell functional-programming list-comprehension

0
推荐指数
1
解决办法
56
查看次数