Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

可変変数の場合におけるprocとlambdaの差

可変変数の場合においては、procよりlambdaの方が変数チェックが厳密です

procの場合

hoge = proc {|x, *w| (x||0) + w.inject(0,&:+)}

hoge.curry(0)[1,2,3]
=> 6

lambdaの場合

hoge = lambda {|x, *w| (x||0) + w.inject(0,&:+)}

hoge.curry(0)[1,2,3]
##ArgumentError: wrong number of arguments (0 for 1+)