タグ

lisp*とgolangに関するsh19910711のブックマーク (2)

  • Goで小さなScheme、Gigueを実装しました - Qiita

    $ gigue > (+ 1 2) 3 > (define (mul x y) (* x y)) > (mul 2 3) 6 > (define a (mul 1 2)) > (- 10 a) 8 > (define (square x) (* x x)) > (print (square 3)) 9 > (define x 'kuke) > (print x) kuke > (load "./examples/sum.scm") > (print (sum 1 2)) 3 > (define x (lambda () (print 'hoge))) > x {[] [print hoge] 0xc820014300} > (x) hoge > (define p (list 1 2 3)) > (car p) 1 > (cadr p) 2 > (caddr p) 3 機能 +, -, *

    Goで小さなScheme、Gigueを実装しました - Qiita
    sh19910711
    sh19910711 2024/06/18
    "GoでSchemeインタプリタを実装してみる / Lexerは text/scanner でやるとして、Parserは渡された文字列を扱えば良い / どこまでがLexerの仕事で、どこからがParserの仕事なのかわからなくなってしまい" 2015
  • Tiny Lisp in Go

    Go 言語による簡単な Lisp 2013-04-04 (鈴) 1. はじめに 2. 字句解析 3. 構文解析 4. 環境と評価器 5. おわりに tiny-lisp.go: 主手続き src/lisp/data.go: cons セルとシンボルその他 src/lisp/env.go: 環境と評価器 src/lisp/globals.go: トップレベルの環境 src/lisp/interp.go: ファイルや文字列を入力とするインタープリタ src/lisp/lex.go: 字句解析および構文解析 8queens.l: 8クイーン問題のプログラム例 (Let Little Lambda Lisp be a Little Lazy §7 から再掲) README.txt lisp-25-04-01.tar.bz2: ソース一式: 11728 バイト 1. はじめに Go 言語による有理数電

  • 1