nph*_*phx 2 f# functional-programming operators
比方说,我想计算的总和2^n
为n
范围从0到100,我可以写:
seq { 0 .. 100 }
|> Seq.sumBy ((**) 2I)
Run Code Online (Sandbox Code Playgroud)
但是,这不像(*)
其他运算符/函数那样.问题在于F#使用(*
和*)
分隔注释,并且我对exponentiation操作符的使用被识别.我知道我可以说
Seq.sumBy (fun n -> 2I ** n)
Run Code Online (Sandbox Code Playgroud)
甚至
Seq.sumBy (( **) 2I)
Run Code Online (Sandbox Code Playgroud)
但是前者比必要的更冗长,而后者的额外空白对我来说是一个巨大的眼睛.
有没有一种标准的方法来处理上述用法(**)
?也许是某种逃避?
规范的方法是使用
( ** )
Run Code Online (Sandbox Code Playgroud)
这避免了评论解析.( **)
嵌套在(* ... *)
注释块中时,该变体可能会导致问题
归档时间: |
|
查看次数: |
99 次 |
最近记录: |