小编Lui*_*eda的帖子

Haskell高阶函数.将两个函数作为参数传递.

我最近一直在教自己Haskell,我的一个练习是实现一个函数,它接受两个函数作为参数,并将第3个函数传递给第一个函数,将结果传递给第二个函数.我有更多的球拍经验.我为球拍创建的功能是

(define (nestfun3 function function2)
  (function2 (function 3)))
Run Code Online (Sandbox Code Playgroud)

我正试图在球拍中复制这个功能.我知道只有一个函数作为参数的高阶函数可以是

twice function = function . function
Run Code Online (Sandbox Code Playgroud)

我怎样才能通过两个功能?我试过了

twice function = function . function
three function = function . twice 
Run Code Online (Sandbox Code Playgroud)

haskell functional-programming

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

Python嵌套范围函数

执行时,Python中以下嵌套控件结构的输出是什么?

for x in range(3):
    for y in range(x):
        print x,y
Run Code Online (Sandbox Code Playgroud)

我知道答案是

1 0
2 0
2 1
Run Code Online (Sandbox Code Playgroud)

但我不清楚为什么会出现这种情况.
我知道range(3)函数会给你{0,1,2}所以为什么不是第一个输出0 0而不是1 0?

python range

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

Prolog将列表中的所有元素相乘

我想在Prolog中定义一个谓词,prod_list/2将列表的每个元素相乘.我有空列表的问题希望产品应该为零,而我得到假.我的代码是

prod_list([H], H).
prod_list([H|T], Product) :- prod_list(T, Rest), 
                            Product is H * Rest.
Run Code Online (Sandbox Code Playgroud)

我得到的结果是prod_list([4,3],Product). - > Product = 12但是当我做prod_list([],Product)时.我得到假而不是Product = 0.

请帮忙.

prolog logic-programming

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