Skip to content

Instantly share code, notes, and snippets.

@zr-tex8r
Created August 2, 2012 15:34
Show Gist options
  • Save zr-tex8r/3237987 to your computer and use it in GitHub Desktop.
Save zr-tex8r/3237987 to your computer and use it in GitHub Desktop.
やっぱり作らないと気が済まなかったらしい
\documentclass{article}
\usepackage{lisp}
\makeatletter%!!!!!!!!!!!!!!!!!!!!!!!!!!
\addassoc\@globalenv\texprint{\Func{\@tex@texprint}}
\def\@tex@texprint#1#2#3{%
\gdef#1{\Nil}\@@tex@texprint#2{#3}}
\def\@@tex@texprint#1#2{%
\ifx#1\Value
\@add@to@write@buffer\@temp@write@buffer{#2}%
\else\ifx#1\Int
\@add@to@write@buffer\@temp@write@buffer{#2}%
\else
\@add@to@write@buffer\@temp@write@buffer{[?]}%
\fi\fi}
\makeatother %!!!!!!!!!!!!!!!!!!!!!!!!!!
\newcommand\PAR{\par}
\newcommand\fibbar[1]{\lispinterpl{
(\define \fibIter (\lambda \prev (\lambda \curr (\lambda \cnt (\lambda \res
(\lispif (\= \cnt :0) \res
((((\fibIter \curr) (\+ \prev \curr)) (\- \cnt :1))
(\concat \res (\putBar \curr)))))))))
(\define \putBar (\lambda \n
((\lambda \s
(\concat '\rule[-.1em]' (\group (\concat \s 'pt')) '{.8em} ' \s '\PAR'))
(\strOfInt \n))))
(\define \fib (\lambda \n
((((\fibIter :0) :1) \n) '')))
(\texprint (\fib :#1))
}}
\begin{document}
\fibbar{12}
\end{document}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment