如果“附加1”是指:
List.map ((+) 1) [1..5];; //equals [2..6]
// instead of having to write: List.map (fun x-> x+1) [1..5]
所发生的情况是1起适用于(+)项,因为它是第一个论点,而清单项目作为第二个论点正在适用。 关于增加和重复,这一命令的论点就没有问题了。
我想从每个要素中删除第1部分(这很可能是一个共同的开端错误):
List.map ((-) 1) [1..5];; //equals [0 .. -4], the opposite of what we wanted
1 适用于(-)作为第一种论点的(-)条,因此,不采用<条码>(清单_项目 - 1,我收到<条码>(1 - 清单_项目/代码)。 我可以把它改写为消极的,而不是贬低积极的一面:
List.map ((+) -1) [1..5];;
List.map (fun x -> x-1) [1..5];; // this works too
I m 寻求一种更清晰的写法,例如(-)__<>/code>,其中
_
指持者,如Arc 语。 这将使1
成为-
的第二种理由,从而列入清单。 因此,如果你想要在名单上标注<代码>divide,你可以写:
List.map ((/) _ 2) [2;4;6] //not real syntax, but would equal [1;2;3]
List.map (fun x -> x/2) [2;4;6] //real syntax equivalent of the above
能否做到这一点,或者我是否必须使用<代码>(fun x ->x2)/代码? 看来,我们最接近于持不同政见者的国家,就是用一个有名词的lam子。