Racket 如何建立一个类似(列表“a”“aa”“aaa”“aaaa”“aaaa”)的列表

Racket 如何建立一个类似(列表“a”“aa”“aaa”“aaaa”“aaaa”)的列表,racket,Racket,要求是使用drracket方案构建列表生成一个aa aaaaa的列表 我试过foldr,但只给aaaaa (define (build-a-string n) (foldr string-append "" (build-list n "a"))) 下面是一个使用折叠的解决方案: #lang racket (define (build-as n) (for/fold ([as '("")]) ([_ n]) (define last-a (first as)) (de

要求是使用drracket方案构建列表生成一个aa aaaaa的列表

我试过foldr,但只给aaaaa

(define (build-a-string n)
  (foldr string-append "" (build-list n "a")))

下面是一个使用折叠的解决方案:

#lang racket

(define (build-as n)
  (for/fold ([as '("")]) ([_ n])
    (define last-a (first as))
    (define new-a  (string-append "a" last-a))
    (cons new-a as)))    

(build-as 5)
以下是简短的版本:

(define (build-as n)
  (for/fold ([as '("")]) ([_ n])
    (cons (string-append "a" (first as)) as)))

您尝试过其他代码吗?欢迎使用SO!为了帮助其他人回答您的问题,请提供一些代码,显示您迄今为止的尝试。如果没有更多的要求,那么列出一个AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA?
(define (build-as n)
  (for/fold ([as '("")]) ([_ n])
    (cons (string-append "a" (first as)) as)))