2012-02-29 25 views
7

Tôi hiện đang sử dụng DrRacket trên Mac OS X và chọn ngôn ngữ "R5RS", nhưng khi tôi nhậpchức năng ngẫu nhiên trong DrRacket

(random 100) 

Tôi nhận được thông báo lỗi:

reference to undefined identifier: random 

gì là vấn đề ở đây? Có phải do gói bị thiếu không?

+0

Tôi cũng đã thử số nguyên ngẫu nhiên và số ngẫu nhiên, nhưng có cùng phản hồi. – JasonLi

+0

Tôi tìm thấy giải pháp, gói có sẵn trong PLaneT. – JasonLi

Trả lời

7

Tính năng ‘ngẫu nhiên’ có được R5RS cung cấp không? Tôi tìm kiếm nó trong chỉ mục của spec, nhưng tôi không thấy nó ở đó. R5RS là một chế độ ngôn ngữ tối thiểu, và khi Racket đang ở chế độ R5RS, nó thực sự hạn chế chính nó.

Vợt có hàm gốc random. Nếu bạn đang sử dụng ‘#lang racket’, nó sẽ tự động có sẵn. Có một lý do bạn đang sử dụng chế độ ngôn ngữ R5RS?

10

Khi dyoo chỉ ra, hàm random không được xác định trong R5RS. Nếu bạn muốn sử dụng chức năng "nước ngoài" bằng ngôn ngữ R5RS trong DrRacket, bạn có thể sử dụng #%require để nhập chúng.

Trong trường hợp này, tìm kiếm random trong tài liệu Racket. Lưu ý rằng random là một phần của mô-đun racket/base. Bây giờ viết:

(#%require (only racket/base random)) 
(random 10) 

Sử dụng only đảm bảo rằng bạn chỉ nhập chức năng random và bất kỳ khác không R5RS xây dựng hiện diện trong racket/base.

Các vấn đề liên quan