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")