在本声明的最后:
let (a,b,c) = (1,2,3) in printfn "%i,%i" a b;;
Run Code Online (Sandbox Code Playgroud)
, 有
a b;;
Run Code Online (Sandbox Code Playgroud)
结尾"a"和"b"的用法是什么,它们是某些函数调用的参数,还是它们是前一个函数的返回值(元组)?如果是这样,let(a,b,c)的用法是什么,我想它应该定义一个由3个元素组成的元组,但是printfn在语句中做了什么?
换句话说,我如何将这个复杂的语句拆分成几个更容易理解的简短语句?我不退出得到"让......进入"语义.有什么解释吗?
谢谢.
Car*_*ten 12
let (a,b,c) = (1,2,3) in ...意思是:里面 ... a应该有价值1,b应该有价值2并且c应该有3(并且那些绑定只存在于...正文中 - 它是所有一个表达式 - 结果将是无论结果是什么...)
要做到这一点,元组(1,2,3)会被模式破坏(a,b,c)
现在在一边...是printfn "%i,%i" a b- printfn "%i,%i"被编译成一个函数,它采用两个整数(以咖喱形式)并打印出来(,在它们之间).
正如您所看到的,您使用参数调用此函数(a并b记住上面的那些值).
总的来说,你会打印出来 1,2
在cget`s忽略写这将是如此另一种方式
let (a,b,_) = (1,2,3) in printfn "%i,%i" a b
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
95 次 |
| 最近记录: |