代码之家  ›  专栏  ›  技术社区  ›  Cam

你必须用显示器来输出r6rs的数据吗?

  •  0
  • Cam  · 技术社区  · 15 年前

    背景:我是scheme的新手,正在使用DrScheme来编写我的程序。

    12345
    

    但是,以下程序不输出任何内容(这是一个r6rs程序):

    #!r6rs
    (import (rnrs))
    
    12345
    

    #!r6rs
    (import (rnrs))
    
    (display 1235)
    

    这是r6rs的新特性吗?只有在使用 display ? 还是我只是做错了什么

    1 回复  |  直到 15 年前
        1
  •  1
  •   Eli Barzilay    15 年前

    你在这里看到的是一个微妙的问题。在PLT中,首选的操作模式是在一个模块中编写代码,其中每个模块都有它所编写语言的规范。通常,默认语言是 #lang scheme (和 #! #lang ). 在这种语言中,行为是让所有顶级非定义表达式显示它们的值(除非它们是空的——就像大多数副作用的结果一样)。但是 #lang r5rs #lang r6rs

    你为什么 R5RS语言的一些输出是,您没有将它用作“模块”(如 #语言r5rs ),而是使用特定的R5R“语言级别”。这种语言级别与r5r更兼容,但由于各种微妙的原因,这通常不是一个好主意。使用 #朗 因此,一般来说是更好的,如果你想节省自己一些额外的多余的头痛,它会更容易,如果你坚持

    推荐文章