Python, Ruby, Groovy 등의 스크립팅 언어를 동적 프로그래밍 언어라고 부르는 이유는
함수를 변수에 저장하여 필요할 때 변수를 부르둣이 함수를 부를 수 있기 때문이다
Ruby 언어와 Groovy 언어에서는 이를 클로저(closer)라고 부르고,
Python 언어에서는 이를 람다 함수(lambda function) 이라고 부른다.

Mathenatica 언어도 이러한 기능을 제공한다.
다음은 이 기능을 이용하여 피보나티 수열과 유클리드 호제법을 구현한 것이다.
(참고. 유클리드 호제법을 구현한 gcd 함수는 Mathematica Developer에 올라와 있는 예제가 음의 정수에 대하여는 잘 못 처리하기 때문에 수정한 것이다.)


* Mathematica 에서 Module 함수를 이용한 동적 프로그래밍(dynamic programming)




* 위의 내용를 PDF 파일로 저장한 것

dynamicProgrammingExample.pdf


* 위의 내용을 HTML 파일로 저장한 것

dynamicProgrammingExampleHtml.html

    (이미지 파일은 HTMLFiles 라는 서브폴더에 저장되므로 현재 티스토리에서는 보이지 않는다.
     웹사이트에 올릴 때는 이 서브폴더 아래의 파일등도 그대로 옮겨주어야 한다. )

* TeX 파일로 저장하여 PDF 파일 생성하기
    ** Mathematica 에서 저장한 원본

dynamicProgrammingExampleTeX.tex


   ** 수정본 (\noindent\(\( ..... \)\) 을 모두 첮아서 \noindent\( ..... \) 로 수정함)

dynamicProgrammingExampleTeXNoindent.tex


   **  수정본우로 부터 pdfLatex 을 실행하여 위의 만든 PDF 파일

dynamicProgrammingExampleTeXNoindent.pdf






Posted by Scripter
,