【发布时间】:2013-10-08 09:26:54
【问题描述】:
我正在努力理解我真正需要做什么,并且想要一些外部输入或一个好的参考点。我被要求使用程序表示来“实现数字集”。每个集合都是一个单参数函数,它接受一个数字并决定该数字是否在集合中。我必须创建的一些函数(我读过的可以在一行中定义):
- 返回一个以数字为参数的函数并检查该数字是否在集合中的函数。
- 一个联合函数,返回 arg1 或 arg2 中所有元素的集合
- 上面的交集函数
- 返回 arg1 但不返回 arg2 中的元素的函数
- 等
现在我知道这只是包含一个 lambda 函数,但我想我对如何表示一个集合并在 lambda 函数中检查它感到困惑?如果有人能指出我正确的方向,我将不胜感激。
【问题讨论】:
-
我想知道您是否误读了其中一些内容。特别是数字 4。一般来说,如果你可以定义一个集合,例如,
{x | x > 2}(大于 2 的数字集合),你可以用函数(lambda (x) (> x 2))来识别它,因为这个函数足以识别集合的元素:当且仅当n在集合中时,使用n调用该函数时返回true。所以数字 4 将返回任何元素,而是一个新函数,表示包含第一个集合中的元素的集合,而不是第二个集合中的元素。这些函数通常称为characteristic,或 -
indicator functions。另外,你能澄清一下数字1吗?第一个函数将什么作为参数?它返回的函数将什么作为参数?
-
也许here的讨论会有所帮助。
标签: functional-programming scheme set