On 6 February 2017 at 20:03, Danilo Kordic <danilo.kor...@gmail.com> wrote: > ..[snip].. > > Hi Rowan. > > [de help: [Sym Txt] > [def Sym 'help: Txt] ] > > [help: "`prop'erty is clearly better than a txt in `prg' if it should > be extracted by a procedure. " > [de help [Sym] > "I prefer even this over Reader Comments (``#''). " > [get Sym 'help:] ] ]
Thanks for that, Danilo. I was a bit confused for a while though because (I think?) there is a typo in it - it doesn't work for me as-is. Anyway, your pointing out the use of a property on the function made sense. I managed to get a version of it working which I like (see below), particularly because it makes passing in "lambdas" trivial as a single arg, and is easy to visually parse with that in mind). I guess the main benefit of using the property-approach is that it won't have any speed impact on the function when it runs, whereas including a "docstring" like I was doing will cause the string to be silently "evaluated" every time the function is run... Just out of curiosity, is that the main/only reason? or are there other reasons I haven't thought of? BTW: The version I came up with is: ----8<---- (de hde (Sym Txt Fn) (def Sym Fn) (def Sym 'help: Txt) ) -> hde (hde 'help "This is the help function" '((X) (get X 'help:)) ) -> help (hde 'tester "This is the tester function" '((X) (println X)) ) -> tester (help 'tester) -> "This is the tester function" (tester 123) 123 -> 123 ----8<---- -- Rowan Thorpe ---- "A riot is the language of the unheard." - Dr. Martin Luther King "There is a great difference between worry and concern. A worried person sees a problem, and a concerned person solves a problem." - Harold Stephens "Ignorance requires no apologies when it presents questions rather than assertions." - Michael Sierchio (OpenSSL mailing list) "What we need more than an end to wars is an end to the beginning of all wars." - Franklin Roosevelt -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe