小编Car*_*ess的帖子

删除语法糖:Haskell中的列表理解

我可以在这个表达式中解释列表理解:

[(i,j) | i <- [1..4], j <- [i+1..4]]
Run Code Online (Sandbox Code Playgroud)

这是输出:

[(1,2),(1,3),(1,4),(2,3),(2,4),(3,4)]
Run Code Online (Sandbox Code Playgroud)

我怎么能用地图,过滤器等编写那段代码?

编辑

这是另一个:

[(i,j,k) | i <- [1..6], j <- [i+1..6],k <- [j+1..6]]
Run Code Online (Sandbox Code Playgroud)

这是输出:

[(1,2,3),(1,2,4),(1,2,5),(1,2,6),(1,3,4),(1,3,5),(1,3,6),(1,4,5),(1,4,6),(1,5,6),(2,3,4),(2,3,5),(2,3,6),(2,4,5),(2,4,6),(2,5,6),(3,4,5),(3,4,6),(3,5,6),(4,5,6)]
Run Code Online (Sandbox Code Playgroud)

haskell functional-programming list-comprehension list lazy-evaluation

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

用很少的比较对4号进行排序

如何在5次比较中对4个数字进行排序?

sorting algorithm

10
推荐指数
4
解决办法
2万
查看次数

在Scheme或C++中实现AKS素性测试

我正在阅读关于主要测试算法的文章并找到了AKS素性测试.这个算法可以在Scheme或C++中实现吗?

有没有人尝试过实施AKS测试?

c++ scheme implementation primality-test

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

函数式编程的总结

我在网上搜索排除 - 包含原则,我发现的是:

公式http://mathworld.wolfram.com/images/equations/Inclusion-ExclusionPrinciple/NumberedEquation3.gif

http://mathworld.wolfram.com/Inclusion-ExclusionPrinciple.html

如果你不理解这个公式我没关系,事实上,我需要的是实现这个:

例如,输入是:

(summation (list 1 2) 3) 其中(列表1 2)是i和j,3是和n的限制.

(n必须是sigma,但......)

然后,Scheme中的公式输出将是:

(清单(清单1 2)(清单1 3)(清单2 3))

我如何在Scheme或Haskell中实现它?(对不起我的英语不好).

math scheme haskell functional-programming set

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

将字符串转换为过程

我正在创建一个程序,允许用户引入一个 lambda 函数,只在界面编写框中编写它,如下所示:

(lambda (p q) (and (not p) q))
Run Code Online (Sandbox Code Playgroud)

这是结果 "(lambda (pq) (and (not p) q))" 因为 scheme 将其转换为字符串而不是可以评估的过程。

如何将此字符串转换为过程?

string lambda scheme

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