2015-11-20 43 views
3

我想知道,在球拍中,您將如何爲列表分配一定的長度。球拍 - 如何將長度分配到列表

這是我想要運行的代碼:

(check-expect (length a-list-of-length-104) 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) 

應該產生不同的輸出每次。

回答

2

列表的長度是它包含的元素的數量。所以你不能「給列表分配一個長度」。

但是,您可以更方便地創建具有一定數量元素的列表。假設#lang racket,您可以使用build-list

要通過103建立一個由從0整數列表:

(build-list 104 values) 

構建由隨機real數的104名單:

(build-list 104 (lambda _ (random))) 
+0

啊好吧,我從來不知道有關函數,但是「值」不起作用,它**一直給出一個錯誤,說變量「值」沒有被定義。** – Theo

+1

@Theo聽起來像你正在使用其中一種教學語言,*不*球拍。教學語言比完整的Racket語言更具限制性。不過,格雷格的解決方案在普通球拍中可以正常工作。 –

+0

@AlexisKing ahh好的很有意義,而且我正在使用球拍的教學語言 – Theo