【发布时间】:2018-02-04 23:31:50
【问题描述】:
我是 Lisp-scheme 的新手,对整个函数式范式也很陌生,目前我正在做一个任务,要求我重载一个具有相同名称但在 racket 中具有不同参数集的函数。下面是我想要实现的一个示例:
#lang racket
(define (put-ball-in-box two-by-fours nails ball)
... )
(define (put-ball-in-box box ball)
... )
这些不是实际的功能,但足够接近。正如暗示的那样,这两个函数都会将一个球放入一个盒子中,但一个会首先从它的组件组装盒子,然后调用另一个。显然,当我在 DrRacket 中或使用命令行尝试上述操作时,我会收到 module: duplicate definition for identifier ... 错误。
有没有办法在racket 中实现这一点?
也许答案就在我面前,但我在过去的两个小时里一直在寻找这个,但找不到任何东西,所以不胜感激。
谢谢。
【问题讨论】:
-
可以制作您自己的
define版本来允许这种事情。不过,这不是一个初学者项目。以 Formica 为例:github.com/samsergey/formica/blob/master/README.md
标签: racket