t**r 发帖数: 3428 | 1 /**
* Returns whether all bounded integers within `s` satisfy `p`.
*/
def forall(s: Set, p: Int => Boolean): Boolean = {
def iter(a: Int): Boolean = {
if (a > bound) true
else if (contains(s, a) && !p(a)) false
else iter(a + 1)
}
iter(-bound)
}
/**
* Returns whether there exists a bounded integer within `s`
* that satisfies `p`.
*/
def exists(s: Set, p: Int => Boolean): Boolean = !forall(s, (x => !p(x)))
/**
* Returns a set transformed by applying `f` to each element of `s`.
*/
def map(s: Set, f: Int => Int): Set = (x => exists(s, (y: Int) => f(y) ==
x))
前面都明白,map的實現不太懂。求指點 | p*****2 发帖数: 21240 | 2 这个实现好牛
set本身就是个函数
这个貌似是讲fp的
【在 t**r 的大作中提到】 : /** : * Returns whether all bounded integers within `s` satisfy `p`. : */ : def forall(s: Set, p: Int => Boolean): Boolean = { : def iter(a: Int): Boolean = { : if (a > bound) true : else if (contains(s, a) && !p(a)) false : else iter(a + 1) : } : iter(-bound)
| g*******o 发帖数: 156 | 3 牛。。。
越看越像functional analysis数学课上的定义。。。
【在 t**r 的大作中提到】 : /** : * Returns whether all bounded integers within `s` satisfy `p`. : */ : def forall(s: Set, p: Int => Boolean): Boolean = { : def iter(a: Int): Boolean = { : if (a > bound) true : else if (contains(s, a) && !p(a)) false : else iter(a + 1) : } : iter(-bound)
| L***s 发帖数: 1148 | 4 # CoffeeScript
map = (s, f) -> (x) -> exists s, (y) -> f(y) == x
# i.e.
map = (s, f) ->
(x) ->
exists s, (y) ->
f(y) == x
// JavaScript
var map = function(s, f) {
return function(x) {
return exists(s, function(y) {
return f(y) === x;
});
};
}; | l******t 发帖数: 55733 | 5 Combinator实现. 这是coursera 上的原题 | t**r 发帖数: 3428 | 6 是y combinator麽?any link to read about this?thanks
【在 l******t 的大作中提到】 : Combinator实现. 这是coursera 上的原题
|
|