小编Wel*_*oni的帖子

是否有可能迭代非内同态的应用?

在Haskell中,如果我想重复将一个内同态a -> a应用于a我可以使用的类型的值iterate.

那个函数不是一个endomorphisms,但通用到足以在返回类型上正常工作?

考虑一下Just :: a -> Maybe a; 我可以写

Just . Just . Just ...
Run Code Online (Sandbox Code Playgroud)

我想要多次.有没有办法用这样的东西写这个

iterate' 3 Just :: a -> Maybe (Maybe (Maybe a))
Run Code Online (Sandbox Code Playgroud)

或者我们需要像依赖类型这样的东西吗?

haskell template-haskell

14
推荐指数
2
解决办法
218
查看次数

Python库函数不带关键字参数

当我尝试对python中的问题应用更具功能性的方法时,就会出现此问题。我试图做的只是简单地将一个数字列表平方,没什么大不了的。

from operator import pow
from functools import partial 

squared = list(map(partial(pow, b=2), range(10))
Run Code Online (Sandbox Code Playgroud)

事实证明,这没有用。 TypeError: pow() takes no keyword arguments

困惑我检查是否pow(b=2, a=3)。没有。

我已经检查了操作员的源代码,没有可疑之处。

感到困惑,我开始怀疑自己的python知识,我自己做了一个pow函数。

def pow(a, b):
  return a ** b
Run Code Online (Sandbox Code Playgroud)

然后,我尝试用我的功能做同样的事情,而且令人惊讶的是,一切正常。

我不会猜测问题的原因是什么,我要问的仅仅是原因为何,以及是否存在解决方法。

python functional-programming keyword-argument functools

5
推荐指数
1
解决办法
87
查看次数

ViewPatterns范围界定背后的推理

今天我遇到了一个奇怪的问题.模式匹配没有看到在where子句下定义的函数.

foo (bar -> 1) = 2
  where
    bar _ = 1
Run Code Online (Sandbox Code Playgroud)

此代码拒绝编译声明变量bar不存在.

当然,这是一个简单的解决方案,但我对这种范围规则背后的推理感兴趣.

haskell scoping

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

为什么镜头包含一个用于fromEnum/toEnum的Iso,而不是一个用于显示/读取的?

假设你声明了两个同构

showing :: (Read a, Show a) => Iso' String a
showing = iso read show

reading :: (Read a, Show a) => Iso' a String
reading = iso show read
Run Code Online (Sandbox Code Playgroud)

它们是不安全的,并不是每个String都会解析为a.

这引出了一个问题:为什么这两个不包含在库enum = iso fromEnum toEnum中?

它同样不安全,不能通过类型系统来防止.他们都把负担转嫁给程序员,程序员必须确保转换不会破坏同构.

快速示例:under enum (+1) True将抛出异常

haskell haskell-lens

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

使用高阶函数(过滤器,映射,折叠)代替Haskell中的模式匹配是否有任何优势?

我在Haskell中有一些使用模式匹配的代码.但是,我认为我可以使用折叠和过滤器.对我来说,这将更具可读性,但我想知道它在复杂性方面有任何优势.

haskell pattern-matching fold higher-order-functions

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

自上而下的递归方案

我们是否可以定义构造自上而下而不是自下而上的值的递归方案(而不失去其一般性)?

这将非常有帮助,因为我已经看到很多次使用递归方案在内部定义的功能首先应用于reverse其输入的情况,这清楚地表明需要执行类似foldl的“从前到后”执行。

recursion haskell order-of-execution recursion-schemes

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