小编a1y*_*1yx的帖子

Prolog - 查找列表的产品

我是prolog(swi prolog)的新手,很抱歉,如果这是一个愚蠢的问题.这也是一项单一的任务.我被要求找到列表的产品,这就是我想出的:

product([],1).
product([H|T], Product) :-
    product( T, Product1),
    Product is H * Product1.
Run Code Online (Sandbox Code Playgroud)

最长的我有基本情况:

product([],0).
Run Code Online (Sandbox Code Playgroud)

但这使一切都变为零.但是,在测试基本情况时 product([],Product),我得到一个 - 这是不正确的.任何解决方案的提示将不胜感激.

list prolog

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

Haskell - 检查列表中是否有重复的元素

这是一项单一的家庭作业,我大部分都已完成,我不只是来这里寻求答案

给出的任务是查找给定的元素是否在列表中出现多次.我尝试的算法是创建countDups它将充当计数器,并计算在列表中找到所述元素的次数.那么isMemberTwice(应该返回一个Bool)将是Trueif countDups大于1,False否则.

是的,我是Haskell的新手,所以如果这是一个完全可怕的实施方式,我很抱歉.

countDups x [] = 0 
countDups x (y:ys) 
    | x == y = 1 + countDups x ys 
    | otherwise = countDups x ys

isMemberTwice x [] = False      --base case; empty list
isMemberTwice x (y: ys) 
    | countDups > 1 = True 
    | otherwise False 
Run Code Online (Sandbox Code Playgroud)

错误信息

    parse error (possibly incorrect indentation or mismatched brackets)
Failed, modules loaded: none.
Run Code Online (Sandbox Code Playgroud)

由于下面的评论我更新但仍然没有工作 - 任何建议?

isMember _ [] …
Run Code Online (Sandbox Code Playgroud)

haskell

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

标签 统计

haskell ×1

list ×1

prolog ×1