我正在忙着学习F#并正在玩$('#street_1,#street_2').on('input', function(e){
let count=$(this).closest('div').find('span').eq(1);
count.text($(this).value.length+'/'+ max);
if ($(this).value.length>max) {
count.css('color','red');
}
else count.css('color','black');
});
。任何人都可以解释为什么以下两个调用基本上不相同,一个错误而另一个没有。
以这种方式调用:
Seq.fold
导致以下错误:
Seq.fold (fun state input -> state + input) 0 Seq.ofList [1;2;3;4;5];;
使用管道调用工作正常:
error FS0001: This expression was expected to have type
''a -> 'b'
but here has type
'int'
我猜我以某种方式采用了泛型函数并强制它只是int。
答案 0 :(得分:7)
您将Seq.ofList作为第三个参数传递给Seq.fold。你需要添加一些parens:
Seq.fold (fun state input -> state + input) 0 (Seq.ofList [1;2;3;4;5]);;
答案 1 :(得分:3)
Seq.ofList不是必需的。 你可以直接写:
Seq.fold (fun state input -> state + input) 0 [1;2;3;4;5]
或:
[1;2;3;4;5] |> Seq.fold (fun state input -> state + input) 0