(use utils)
(define (stupid-clip text)
(string-append
" --
/ \\
| |
@ @
|| ||
|| ||
|\\_/|
\\___/\n
What do you want to mess up with today?
"
text
))
(toplevel-command
'annoy
(lambda ()
(stupid-clip (with-output-to-string
(lambda ()
(apropos (read))))))))
Usando isso no REPL:
$ csi -n
CHICKEN
(c)2008 The Chicken Team
(c)2000-2007 Felix L. Winkelmann
Version 3.2.0 - linux-unix-gnu-x86 [ manyargs dload ptables applyhook ]
SVN rev. 10664 compiled 2008-05-07 on ze-dureza (Linux)
#;1> (load "annoy.scm")
; loading annoy.scm ...
; loading library utils ...
#;2> ,annoy close
--
/ \
| |
@ @
|| ||
|| ||
|\_/|
\___/
What do you want to mess up with today?
close-input-port : (procedure port948)
close-input-file : variable
close-output-file : variable
close-output-port : (procedure port949)
Atualização
Na realidade, o código pode ser um pouco mais simples:
(use utils)
(toplevel-command
'annoy
(lambda ()
(print " --
/ \\
| |
@ @
|| ||
|| ||
|\\_/|
\\___/\n
What do you want to mess up with today?
")
(apropos (read))))
2 comentários:
Hahahaha, gostei muito dessa :-)
O resultado da procrastinação até foi útil: serviu para achar um bug no compilador. :-)
O resultado mostrado no exemplo da execução de ,annoy close mostra close-{in,out}put-port como variáveis. No mínimo, estranho.
Era um bug mesmo. Thread completa em http://lists.gnu.org/archive/html/chicken-hackers/2008-05/msg00000.html
E a correção alguns momentos depois: http://trac.callcc.org/log/chicken/trunk/library.scm?rev=10735
Postar um comentário