r5rs

    1熱度

    1回答

    我想在球拍執行以下代碼R5RS: #lang r5rs (define boo 100) (define lib `(begin 88 99 99 ,boo)) (eval lib (interaction-environment)) 然而,這導致錯誤: begin: unbound identifier; also, no #%app syntax transformer is bo

    -3熱度

    1回答

    所以我讀了DrRacket是一個很好的用於常見lisp的IDE。 我下載了它,並設置語言爲R5RS和寫了下面的函數定義: (defun f (x) (+ 5 5)) 但是它返回一個錯誤 defun: undefined; cannot reference undefined identifier 而且我不知道如何解決它,考慮到defun定義在共同的lisp中是一個很好建立的關鍵

    3熱度

    2回答

    我正在嘗試寫一些在DrRacket/plt-r5rs和Gambit/gsi中都有效的東西。 我遇到的問題是在Gambit中(load "foo.scm")不會加載define-syntax -blocks。在Gambit中使用(include "foo.scm")有效,但當然會導致DrRacket中的語法錯誤。 有沒有辦法解決這個問題,以便我可以編寫便攜式R5RS代碼? 事情我已經嘗試: 重新定義

    1熱度

    1回答

    我有一個這個功能,讓它打印出你輸入的列表(iota 1 10),在列表中打印數字1-10(1 2 3 4 5 6 7 8 9 10)。我將如何改變這個只需要一個號碼,並仍然從列表中的1-(所選號碼)打印。我只是不知道該如何解決這個問題。謝謝。 (define iota (lambda(x y) (cond((> x y) '()) (else

    3熱度

    2回答

    R5RS說匹配值例子... 值可能被定義如下: (define (values . things) (call-with-current-continuation (lambda (cont) (apply cont things)))) 沒有,不過,請說明如果通過這種方式實現值,可以如何實現與值調用。所以,如果以這種方式實現值,那麼如何實現值調用? (這是因爲我試圖獲得一

    1熱度

    1回答

    所以我正在爲我的編程語言類工作一些練習題,其中一個任務是創建一個腳本「MyEval」,它允許您執行簡單的嵌套加法和乘法。 因此,例如程序將能夠做到這一點(MyEval '(1 +(3 *4)))或更深,但不必做減法或超過2個數字和一個操作符。所以不那麼複雜。然而,我的腦海裏炸了,我會喜歡一些指導。 這是我迄今爲止 #lang racket (define ns (make-base-namesp

    -1熱度

    3回答

    方案(我使用的球拍R5RS),當我把這個程序一個奇怪的事情發生 (map display '(1 2 3 4 5)) 返回 12345(#<void> #<void> #<void> #<void> #<void>) 爲什麼就是它?怎麼了虛空?

    0熱度

    2回答

    在該代碼片斷: (begin (define f '()) ((lambda() (set! f (lambda (x) (g x 5))))) (define (g x y) (+ x y)) (f 5)) (set! f (lambda...))時被評估,變量g被未綁定到任何位置。 至於R5RS(鏈路here)的規範說: 環境中效果時lam

    1熱度

    2回答

    這個R5RS宏是我嘗試過的,幾乎是我想要做的。球拍或其他實現不喜歡這個宏恰好在我想要發生魔法的地方。 (define-syntax quote-unique (syntax-rules (magic end) ;; end case ((quote-unique magic processed end) 'processed) ;; finis

    0熱度

    3回答

    當試圖運行這些程序,似乎一切都很好,直到我打電話 (set! fib (mem 'memorize fib)) (fib 10) (fib 10) (set! fib (mem 'unmemorize fib)) (fib 4) 會發生什麼事是我改後「記憶TO」 unmemorize是,它他們兩個現在 (define (mem mem-it func) (let ((tabl