【发布时间】:2021-07-30 15:44:22
【问题描述】:
我想在球拍中实现一个双向链表。一开始我写了一个简单的两个节点列表来测试球拍中的引用。这是我的代码:
#lang racket
(struct node (val next) #:transparent #:mutable)
(define n0 (node 0 null))
(define n1 (node 1 n0))
n0
n1
(set-node-next! n0 n1)
n0
n1
下面是对应的输出:
(node 0 '())
(node 1 (node 0 '()))
#0=(node 0 (node 1 #0#))
#0=(node 1 (node 0 #0#))
输出的第一行和第二行是我对代码的期望,但在那之后我不知道它在做什么。我猜那些 # 与参考有关,但我在网上找不到任何东西。谁能帮我解释一下这个输出?
谢谢。
【问题讨论】:
标签: functional-programming racket