作者sjgau (sjgau)
看板Cad_Cae
标题Re: [心得] AutoLISP 的 Hello, world!\n
时间Mon Nov 21 08:58:13 2005
http://xserve.math.nctu.edu.tw/people/cpai/carnival/fibonacci/03.htm
※ 引述《sjgau (sjgau)》之铭言:
: 指令: (load "f03")
: no= 1, ratio= 1.0
: no= 2, ratio= 2.0
: no= 3, ratio= 1.5
: no= 4, ratio= 1.66667
: no= 5, ratio= 1.6
: no= 6, ratio= 1.625
: no= 7, ratio= 1.61538
: no= 8, ratio= 1.61905
: no= 9, ratio= 1.61765
: no= 10, ratio= 1.61818
: no= 11, ratio= 1.61798
: no= 12, ratio= 1.61806
: no= 13, ratio= 1.61803
: no= 14, ratio= 1.61804
: no= 15, ratio= 1.61803
: no= 16, ratio= 1.61803
: no= 17, ratio= 1.61803
: no= 18, ratio= 1.61803
: no= 19, ratio= 1.61803
: no= 20, ratio= 1.61803
: no= 21, ratio= 1.61803
: no= 22, ratio= 1.61803
: no= 23, ratio= 1.61803
: no= 24, ratio= 1.61803
: no= 25, ratio= 1.61803
: no= 26, ratio= 1.61803
: no= 27, ratio= 1.61803
: no= 28, ratio= 1.61803
: no= 29, ratio= 1.61803
: no= 30, ratio= 1.61803
: 31
: ; file: f03.lsp
: ;| 费氏数列前後项的比值
: 把费氏数列中的每一项用前一项来除,我们得到一个新数列:
: 1, 2, 1.5, 1.67, 1.6, 1.63, 1.615, 1.619, 1.618, ..... |;
: (defun f03 (no /)
: (cond
: ((<= no 0) 1)
: ((= no 1) 1)
: (t (+ (f03 (- no 2)) (f03 (- no 1))))
: )
: ) ; end of f03()
: ; main() begin here
: ; for no= 1 to 30 do ...
: (setq no 1)
: (while (<= no 30)
: (setq n1 (f03 (- no 1)))
: (setq n2 (f03 no))
: (setq x (/ (float n2) (float n1)))
: (princ (strcat "no= " (itoa no) ", ratio= "))
: (princ x)
: (princ "\n")
: (setq no (1+ no))
: ) ; end of while()
: ; end of main()
: ※ 引述《HiEArO (xsd)》之铭言:
: : 谢谢你仔细的回答 我是第一次执行lisp程式
: : 不晓得执行的流程
: : 这两行可以说是关键所在
: : 我之前是有load进去,但是不晓得怎麽跑
: : 经过第二行和以下执行结果的示范
: : 我了解了 非常感谢回答 你的解答真的很详细
: : 若可以的话 可以教教我DEFINE的用法吗?谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.243.237.65
1F:推 mgw:看了各位前辈讨论LISP 自己也跟着热血起来了 决定学了!!! 11/21 10:34
2F:推 sjgau:LISP, AutoLISP 真的很简单,加油! 11/21 10:50