“#:”在Guile中意味着什么?

时间:2014-01-02 01:56:19

标签: scheme guile

我通常使用MIT / GNU Scheme,但在github(guile-2d)中找到了一些Guile代码。

(define main-menu
  (make-scene
   "Main Menu"
   #:init create-menu
   #:enter menu-enter
   #:exit menu-exit
   #:draw draw-menu
   #:update update-menu
   #:events `((key-down . ,menu-key-down))))

我首先查看了MIT / GNU Scheme引用,该引用出现了additional notations,但其中没有关于#:的内容。

然后我浏览了Guile手册,发现了一些看似可能指定可选参数的提及(Profile CommandsDebugging Commands)?类似于Python的东西:

def foo(test):
    return test

foo(bar="test")

任何人都知道这意味着什么?

2 个答案:

答案 0 :(得分:4)

这只是Guile关键字参数的语法。有关详细信息,请查看documentation

答案 1 :(得分:1)

这是PLT Scheme 4引入的关键字参数语法。