Functional programming 球拍-如何为列表指定长度
我在想,在《球拍》中,你如何给一张名单指定一个特定的长度 这是我想要运行的代码:Functional programming 球拍-如何为列表指定长度,functional-programming,racket,Functional Programming,Racket,我在想,在《球拍》中,你如何给一张名单指定一个特定的长度 这是我想要运行的代码: (check-expect (length a-list-of-length-104) 104) (define (random-element a-list) (list-ref a-list (random (length a-list)))) (random-element a-list-of-length-104) (random-element a-list-of-length-104) (rando
(check-expect (length a-list-of-length-104) 104)
(define (random-element a-list)
(list-ref a-list (random (length a-list))))
(random-element a-list-of-length-104)
(random-element a-list-of-length-104)
(random-element a-list-of-length-104)
在不向列表中实际输入104个元素的情况下,您将如何进行此操作
这是我的最终目标:
(check-expect (length a-list-of-length-104) 104)
(define (random-element a-list)
(list-ref a-list (random (length a-list))))
(random-element a-list-of-length-104)
(random-element a-list-of-length-104)
(random-element a-list-of-length-104)
每次都应该产生不同的输出。列表的长度是它包含的元素数。因此,您不能“为列表指定长度” 但是,您可以更方便地创建包含一定数量元素的列表。假设
#lang racket
,您可以使用
要构建由0到103之间的整数组成的列表,请执行以下操作:
(build-list 104 values)
要建立一个由104个随机实数数字组成的列表:
(build-list 104 (lambda _ (random)))
啊,好吧,我从来都不知道这个函数,但是“值”不起作用,它总是给出一个错误,说变量“值”没有定义。@Theo听起来你在用一种教学语言工作,而不是Racket。教学语言比全套语言更具限制性。格雷格的解决方案在常规球拍中可以很好地工作。@AlexisKing ahh好的,是的,我在使用球拍的教学语言。如果构建列表
是教学语言,请将第一个示例更改为(构建列表104(lambda(n)n))
。这就是所有的值
在这里真正做的——充当标识函数。[如果lambda
不是学生语言,我就放弃。:P]