1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        makelispGNU Make 的 Lisp 實(shí)現(xiàn)

        聯(lián)合創(chuàng)作 · 2023-10-01 13:54

        makelisp 是 GNU make 的 Lisp 實(shí)現(xiàn)。

        makelisp.mk 是 GNU make 中的 Lisp 解析器。

        GNU make 包含兩個內(nèi)置函數(shù):$(shell) 和 $(guile)。

        使用

        $ make -f makelisp.mk LISP_PROGRAM='(car (quote (a b c)))'
        a
        $ make -f makelisp.mk LISP_PROGRAM='(cdr (quote (a b c)))'
        (b c)
        $ make -f makelisp.mk LISP_PROGRAM='(cons 1 (cons 2 (cons 3 ())))'
        (1 2 3)
        $ make -f makelisp.mk
        (defun fact (n) (if (eq n 0) 1 (* n (fact (- n 1)))))
        (fact 10)
        (defun fib (n) (if (eq n 1) 1 (if (eq n 0) 1 (+ (fib (- n 1)) (fib (- n 2))))))
        (fib 12)
        (defun gen (n) ((lambda (x y) y) (define G n) (lambda (m) (define G (+ G m)) G)))
        (define x (gen 100))
        (x 10)
        (x 90)
        (x 300)
        ^D
        fact
        3628800
        fib
        233
        gen
        x
        110
        200
        500

        內(nèi)置函數(shù)

        • car

        • cdr

        • cons

        • eq

        • atom

        • +, -, *, /, mod

        • neg?

        • print

        特殊表單

        • quote

        • if

        • lambda

        • defun

        • define

        復(fù)雜示例

        FizzBuzz:

        $ cat fizzbuzz.l | make -f makelisp.mk
        (lambda (n) (if (eq n 101) nil (if (print (if (eq (mod n 15) 0) FizzBuzz (if (eq (mod n 5) 0) Buzz (if (eq (mod n 3) 0) Fizz n)))) (fizzbuzz (+ n 1)) nil)))
        PRINT:   1
        PRINT:   2
        PRINT:   Fizz
        ...
        PRINT:   98
        PRINT:   Fizz
        PRINT:   Buzz
        nil

        Sort:

        $ (cat sort.l && echo '(sort (quote (4 2 99 12 -4 -7)))') | make -f makelisp.mk
        ...
        (1 2 3 4 5 6 7)
        (-7 -4 2 4 12 99)
        瀏覽 27
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        編輯 分享
        舉報(bào)
        評論
        圖片
        表情
        推薦
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        編輯 分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            婷婷色五月综合 | 久草在线视频国产 | 午夜爱爱影院 | 亚洲综合成人电影 | 操逼操网 | 欧美性猛交XXXX乱大交 | 婷婷五月丁香网狠狠色综合 | 韩国三级视频在线 | 91视频免费黄 | 肏屄小视频 |