如何打印结构中类型的列表

How to print a list that is a type in a struct

打印时如何引用术语列表?

我能做到:

(~a (student-id a-student)

这给了我学生证,但我想要一个注册学期的列表。

如果我尝试:

(~a (student-list-of-terms a-student))

我收到错误: 学生术语列表:未定义; 不能在其定义之前引用标识符

学生的定义是:

(define a-student (student pidm list-of-terms list-of-events list-of-withdrawals list-of-courses date-lda date-wdrl)

为了让 Racket 知道 student 是什么,您需要使用 struct 来定义学生的意思。如果学生结构有一个术语列表字段,则可以使用 student-list-of-terms 访问学生的术语列表。

这是一个例子:

#lang racket
(struct student (pidm list-of-terms list-of-events list-of-withdrawals
                      list-of-courses date-lda date-wdrl))

(define a-student
  (student 42
           (list 'term1 'term2)
           (list 'event1 'event2)
           (list 'withdrawal1 'withdrawal2)
           (list 'course1 'course2)
           "a date"
           "another date"))

(student-list-of-terms a-student)