Scheme 在列表中显示每个元素的

Scheme 在列表中显示每个元素的,scheme,Scheme,我有一大串较小的3元素列表,如下所示: ( ("001" "Bob" 80) ("002" "Sam" 85) ("003" "Aaron" 94) etc . . .) 我正在尝试创建类似于: No.1: ID=001, Name=’’Bob’’, Grade=80 No.2: ID=002, Name=’’Sam’’, Grade=85 No.3: ID=003, Name=’’Aaron’’, Grade=94 我只能访问display和for each(无“for”或“printf”

我有一大串较小的3元素列表,如下所示:

( ("001" "Bob" 80) ("002" "Sam" 85) ("003" "Aaron" 94) etc . . .)
我正在尝试创建类似于:

No.1: ID=001, Name=’’Bob’’, Grade=80
No.2: ID=002, Name=’’Sam’’, Grade=85
No.3: ID=003, Name=’’Aaron’’, Grade=94
我只能访问display和for each(无“for”或“printf”功能)

我一直在尝试为每个接受列表的函数创建一个

伪代码:

for-each list in list
display "ID=(car list)"
display "Name ="(cadr list)" "
etc

任何帮助都将不胜感激

那么,您的解释器毕竟没有
printf
?真可惜。我们可以手动获得所需的输出,这有点麻烦,但这应该适用于大多数方案解释器,请注意,需要一个额外的过程来跟踪索引:

(define lst
  '(("001" "Bob" 80) ("002" "Sam" 85) ("003" "Aaron" 94)))

(define (add-index lst)
  (let loop ((lst lst) (idx 1))
    (if (null? lst)
        '()
        (cons (cons idx (car lst))
              (loop (cdr lst) (+ idx 1))))))

(for-each (lambda (e)
            (display "No.")
            (display (car e))
            (display ": ID=")
            (display (cadr e))
            (display ", Name=’’")
            (display (caddr e))
            (display "’’, Grade=")
            (display (cadddr e))
            (newline))
          (add-index lst))
它打印所需的结果:

No.1: ID=001, Name=’’Bob’’, Grade=80
No.2: ID=002, Name=’’Sam’’, Grade=85
No.3: ID=003, Name=’’Aaron’’, Grade=94

这是另一个版本。它避免了构建临时列表

(define lst
  '(("001" "Bob" 80) ("002" "Sam" 85) ("003" "Aaron" 94)))

(define (print-list lst)

  (define (display-one-item item index)
    (display "No.")
    (display index)
    (display ": ID=")
    (display (car item))
    (display ", Name=’’")
    (display (cadr item))
    (display "’’, Grade=")
    (display (caddr item))
    (newline))

  (define (helper in index)
     (if (not (null? in))
        (begin
          (display-one-item (car in) index)
          (helper (cdr in) (+ index 1))
        )))
  (helper lst 0))

  (print-list lst)

你哪里有问题?谢谢,太好了。永远是我的荣幸!这实际上似乎是
DO
可能很方便的少数情况之一。