Hi List, As I tried to eliminate the need to use the (:) before function names into Higher Order Functions I got this more user friendly version to work for me :
>> my-map: func [f blk /local result] [ [ result: make block! length? blk [ foreach item blk [ [ append/only result do reduce [:f :item] [ ] [ result [ ] >> my-map 'first ["ab" "cd" "ef"] == [#"a" #"c" #"e"] >> In fact I never got the final objective of eliminate either the : or ' before function names - probably because when called the my-map function calls itself the second item which is another function name. So I realized I could note go farther into this simplification but I like better to use a ' than a : as it seems more natural to me to work with a literal to start with. Being so I tried to add more validation for parameters f and blk as in f [lit-word!] and blk [block!]. To my great surprise I received the following error msg. Can someone help me to better understand how REBOL can send me this error ? Why is 'first not considered as a real lit-word! datatype! ? >> my-map: func [f [lit-word!] blk [block!] /local result] [ [ result: make block! length? blk [ foreach item blk [ [ append/only result do reduce [:f :item] [ ] [ result [ ] >> my-map 'first ["ab" "cd" "ef"] ** Script Error: my-map expected f argument of type: lit-word ** Where: halt-view ** Near: my-map 'first ["ab" "cd" "ef"] >> Thanks! Regards, Gerard -- To unsubscribe from the list, just send an email to lists at rebol.com with unsubscribe as the subject.
