小编Big*_*ter的帖子

Haskell签名:基础知识

为什么这不起作用?

sum :: (Num a, Num b) => a -> b -> c
sum a b = a + b
Run Code Online (Sandbox Code Playgroud)

当然,错误消息与签名有关,但我仍然不明白原因.

Couldn't match expected type ‘a’ with actual type ‘b’
‘b’ is a rigid type variable bound by
  the type signature for:
    sum :: forall a b c. (Num a, Num b) => a -> b -> c

‘a’ is a rigid type variable bound by
  the type signature for:
    sum :: forall a b c. (Num a, Num b) …
Run Code Online (Sandbox Code Playgroud)

haskell

5
推荐指数
3
解决办法
134
查看次数

让Haskell中的递归

可能有人解释这与下面的输入一小段代码的行为:[[1,2],[3,4]]

infiniteList ls = let v = ls ++ v
                  in concat v
Run Code Online (Sandbox Code Playgroud)

结果是一个无限的列表,但我没有意识到为什么.我明白了诀窍在于:

ls ++ v
Run Code Online (Sandbox Code Playgroud)

但是,因为我们没有定义变量的初始值,所以如何正常工作v

recursion haskell list infinite let

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

在 Python 3.X 中动态导入模块

我想从函数内部导入一个模块。例如从这个:

from directory.folder.module import module

def import():   
    app.register_blueprint(module)
Run Code Online (Sandbox Code Playgroud)

对此:

def import():   
    from directory.folder.module import module
Run Code Online (Sandbox Code Playgroud)

但是,没有对其进行硬编码。例如:

def import():
    m = "module"
    from directory.folder.m import m
Run Code Online (Sandbox Code Playgroud)

是否可以?提前致谢

python python-import

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

来自元组的函数 - Haskell

对于那些善于使用Haskell的人来说,这是一个简单的问题!为什么我写:

let a b = (5,6)
Run Code Online (Sandbox Code Playgroud)

我获得了一个功能:

a :: p -> (a, b)
Run Code Online (Sandbox Code Playgroud)

此外,b未实例化.我试图理解它是徒劳的.谢谢你的帮助!

haskell pattern-matching

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