r6rs

    1熱度

    1回答

    這個問題肯定是之前問過的,here。除了在Command-line access and exit values的r6rs-lib中提到的command-line功能外,所提供的一些解決方案確實可行(在Windows中)。 我設法用*argv*實現我在Gauche想(非R6RS兼容的實現): (display *argv*) > gosh test.ss first 1 2 3 4 5 6 7

    1熱度

    1回答

    我有一個point記錄類型定義如下時: (define-record-type point (make-point x y) point? (x point-x) (y point-y) ) 現在,我想擴展point記錄類型,定義了一個新的記錄類型如下: (define-record-type cpoint (make-cpoint col

    1熱度

    2回答

    我在看R6RS(在算法語言計劃Revised6報告),在「引言」部分有一個總結: 「計劃是Lisp的第一個主要方言,它將程序與lambda表達式和符號區分開來,爲所有變量使用單個詞法環境,並以 作爲操作數位置來評估過程調用的操作符位置。 我的問題是: 什麼的「區分lambda表達式和符號的程序」有什麼好處? 什麼是單一的詞彙環境?我的理解是,由於詞法範圍的原因,Scheme中的所有內容都是「詞法」

    0熱度

    1回答

    standard libraries for Scheme r6rs手冊建議如果我導入庫(rnrs exceptions (6))我應該能夠呼叫(error? val)來檢查給定值是否爲&error類型。我想爲單元測試做這件事。我已經將庫添加到我的導入頭文件中並且代碼已經編譯完成,所以我知道導入工作正常。但DrRacket仍然將error?識別爲未定義。有人知道這裏發生了什麼嗎? 我的代碼: #!

    0熱度

    1回答

    我想寫詞法分析器/解析器R6RS,我只能和基準跳躍評論 這裏是我的詞法/語法規則的一些部分: BOOLEAN: '#t' | '#f' | '#T' | '#F'; NUMBER: DIGIT+; // TODO: incomplete CHAR: '#\\' CHARNAME | '#\\x' HEXDIGIT+ | '#\\' . ; STRING: '"' STRELEMENT* '"

    2熱度

    2回答

    考慮下面的代碼: #!r6rs (library (test) (export) (import (rnrs)) (define a 5) (begin (define b 4) (+ 3 b)) 'cont (define c 5) 'done) 從R6RS Report 7.1: 甲<庫主體>就像一個<體>(見11.3節)不同之處在於一個<庫體>不需

    5熱度

    1回答

    我想用一個測試語法異常的宏擴展srfi-78。我想要這樣的事情: #! /usr/bin/env scheme-script #!r6rs (import (rnrs) (srfi :78 lightweight-testing)) ; the macros I want to test (define-syntax some-macros (syntax-rules()

    2熱度

    1回答

    我正在嘗試編寫匹配宏的模式。我沒有很遠,但我已經感到困惑。我的測試代碼如下 #!r6rs (import (for (rnrs base (6)) run expand) (for (rnrs syntax-case (6)) expand) (rnrs io simple (6))) (define-syntax matcher (lambda (stx

    0熱度

    1回答

    有沒有一種方法來獲取庫導出的所有方法的列表?

    1熱度

    2回答

    在Scheme R6RS中可以打印變量的名稱嗎?我的意思是: (define (f) (lambda (arg) (display (*name* arg)))) 這樣的: (define my-var 3) (f my-var) ; => displays the string "my-var")