README.md (1045 bytes)
1 Blaher 2 --- 3 4 Say stuff with a template that has variables inside. It's like 5 cowsay. Plus it's a macro, which is neat. 6 7 Examples 8 --- 9 10 ```lisp 11 (with-output-to-string (bag) (blah bag "Hi {{person}}!" :person "Joe")); => "Hi Joe!" 12 13 (blah t "Hi {{person}}! I am {{computer-assistant}}, here to help you, {{person}}, with all of your problems." 14 :person "Fred" 15 :computer-assistant "Eliza") 16 17 ; => Hi Fred! I am Eliza, here to help you, Fred, with all of your problems. 18 ``` 19 ```lisp 20 (blaher "Hi {{person}}! I am {{computer-assistant}}, here to help you, {{person}}, with all of your problems.") 21 ``` 22 macro expands to: 23 ```lisp 24 (LAMBDA (#:STREAM.6790 &KEY ((:COMPUTER-ASSISTANT #:G6791)) 25 ((:PERSON #:G6792))) 26 (PRINC "Hi " #:STREAM.6790) 27 (PRINC #:G6792 #:STREAM.6790) 28 (PRINC "! I am " #:STREAM.6790) 29 (PRINC #:G6791 #:STREAM.6790) 30 (PRINC ", here to help you, " #:STREAM.6790) 31 (PRINC #:G6792 #:STREAM.6790) 32 (PRINC ", with all of your problems." #:STREAM.6790)) 33 ``` 34 35 [source](http://localhost/bauhh/bauhh.dyndns.org_8000/gilbert)