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

时间:2015-07-24 15:20:32

标签: struct racket pretty-print

如何引用术语列表进行打印?

我可以这样做:

(~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)

1 个答案:

答案 0 :(得分:2)

为了让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)