小编Tra*_*ac3的帖子

Predsort/3喜欢msort/2

我想知道是否可以使用predsort/3而不会丢失重复值?如果没有,我应该如何排序这个术语列表?

当前排序功能:

compareSecond(Delta, n(_, A, _), n(_, B, _)):-
        compare(Delta, A, B).
Run Code Online (Sandbox Code Playgroud)

结果:

predsort(compareSecond, [n(3, 1, 5), n(0, 0, 0), n(8, 0, 9)], X).
X = [n(0, 0, 0), n(3, 1, 5)].
Run Code Online (Sandbox Code Playgroud)

你看,这个词n(8,0,9)已经消失了,这不是我需要的.

prolog swi-prolog

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

如何有效地找到二维数组中的区域?

我需要一个想法,如何在二维数组中有效地找到下面标有0的区域.应该注意的是,还有其他区域,例如这张图片显示了两个拥有坐标(0.0)和另一个拥有坐标(21.3)的人之一.

00000000000111110000111
00000000001111110000111
00000000011111100000111
00000000000111000001101
00000000011100000011101
00000001111100001111001
00000111111111011111001
00000001111100001111001
00000000010000000011001
00000000000000000001111
Run Code Online (Sandbox Code Playgroud)

当然,真正的阵列会更大.递归到所有方面并在标记1或阵列侧停止的版本不够快.

arrays algorithm find

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

Haskell:不在范围内:数据构造函数

今天开始学习haskell for school,我遇到了功能问题.我不明白为什么它不在范围内..

下面是代码:

ff :: [[Char]] -> [[Char]] -> [Char]
ff A B = [[x !! 0, y !! 1] | x <- A, y <- B, (x !! 1) == (y !! 0)]
Run Code Online (Sandbox Code Playgroud)

和错误:

md31.hs:2:4: Not in scope: data constructor `A'

md31.hs:2:6: Not in scope: data constructor `B'

md31.hs:2:38: Not in scope: data constructor `A'

md31.hs:2:46: Not in scope: data constructor `B'
Run Code Online (Sandbox Code Playgroud)

提前致谢 :)

haskell

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

标签 统计

algorithm ×1

arrays ×1

find ×1

haskell ×1

prolog ×1

swi-prolog ×1