Skill定义函数
定义函数:Skill 中常用的3个定义函数的关键字是procedure,defun ,lambda。
1. procedure procedure的基本语法,
procedure(s_funcName(l_formalArglist)
g_expr1 ...
) 示例
procedure( trAdd( x y ) ;定义了包含2个参数的函数trAdd printf( "Adding %d and %d ... %d \n" x y x+y ) x+y ;默认的返回值 ) => trAdd trAdd( 6 7 ) => 13 ;函数名trAdd,2个参数6和7
2. defun
defun的基本语法:
defun(s_funcName ( l_formalArglist )
g_expr1 ...
)
示例
defun( factorial (x) if( (x == 0) then 1 else x * factorial( x - 1)))
=> factorial
factorial( 6 )=> 720
需要注意的是用defun定义函数时,函数名跟左括号之间一定要有个空格,否则会出现语法错误,而用procedure定义函数时函数名与括号间不能有空格。
3. lambda lambda的基本语法,
trAddWithMessageFun = lambda( ( x y ) printf( "Adding %d and %d ... %d \n" x y x+y ) x+y ) => funobj:0x1814b90 lambda定义的函数没有函数名,所以将其赋值给一个变量。使用apply调用一个lambda函数,apply( trAddWithMessageFun '( 4 5 ) ) => 9 为啥不把define也算进去呢,difine函数也很好用 很好的总结,现在明白了三个函数定义方式了 谢谢分享:):) 继续学习中,感谢。 学习中,谢谢 看见有用procedure定义空函数名的函数,是不是会优先执行 多谢分享!~ study..., thanks 继续学习中···
页:
[1]
2