一. function數組
1. 做爲表達式或參數時,只有調用是最後一個表達式或參數時纔會得到全部結果,其他的只能得到第一個結果(函數沒返回值時,第一個結果是nil)函數
1) 表達式: .. = f1(), f2(), f3()io
2) 參數: F(f1(), f2(), f3()) function
F( f1() .. f2() .. f3())select
獲取 f1() 、f2()的第一個結果,f3()的全部結果構造函數
2. 構造函數收集表達式的全部參數,scope
{f1(),f2(),f3()} 構造函數中包含f1, f2的第一個結果,f3的全部結果co
3. 使用括號括起來時,始終只得到第一個結果參數
F((f3())) 只得到f3的第一個結果
4. unpack: 輸入是數組,輸出是數組中全部元素
unpack{10,20,30}
5. 可變參數
select('#', ... ) 可變參數的個數
select(i, ...) 第i個可變參數
6. function : first value, lexical scope
7. high-order function: contain function argument;