gpt4 book ai didi

functional-programming - 下棋

转载 作者:行者123 更新时间:2023-12-02 03:53:12 24 4
gpt4 key购买 nike

我有一个移动程序,通过传递一对将合法移动应用于棋盘上的棋子:(cons source dest) 所以 (cons 1 2) 从棋盘的位置 1 拿一 block 棋子并将其移动到位置 2。

我正在尝试制作一个应用与之前相同的 Action 的程序。我试着做

(move (reverse move)) 将传入 (cons 2 1) 从而将棋子移回。

不幸的是,反向对成对不起作用。我无法将它转换为列表,因为那样必须更改大量代码以适应末尾的空值。

有人能想到什么吗?顺便说一句,我正在使用 MIT Scheme。

最佳答案

你需要为此实现你自己的reverse-pair过程,它可以像这样简单:

(define (reverse-pair p)
(cons (cdr p) (car p)))

或者这个,有点花哨但可读性较差:

(define (reverse-pair p)
`(,(cdr p) . ,(car p)))

无论哪种方式,它都按预期工作:

(reverse-pair '(1 . 2))
=> '(2 . 1)

关于functional-programming - 下棋,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13667097/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com