Nếu bởi "Chuẩn Đề án (trong vợt IDE)," bạn có nghĩa là ngôn ngữ vợt, tức là, những gì bạn nhận được khi bạn có tiền tố mã của bạn với #lang racket,
sau đó bốn sự khác biệt đầu để tìm cho ra là:
- một hệ thống mô-đun khác nhau
- một hệ thống vĩ mô khác nhau (tùy thuộc vào bao nhiêu tuổi mã của bạn là)
- bất biến nhược điểm tế bào (trừ khi bạn nhập những có thể thay đổi)
- không IFS một nhánh trong vợt (sử dụng
when
)
Để mã cổng từ Guile to Racket, hãy tìm xem tệp nào nằm ở dưới cùng của phụ thuộc của bạn, tức là tìm các tệp không phụ thuộc vào các tệp khác. Mở một tệp như vậy trong Racket, thêm dòng #lang vợt ở trên cùng và cố gắng chạy nó.
Bạn rất có thể sẽ gặp phải một số lỗi "số nhận dạng không liên kết". Nếu bạn may mắn, chức năng có mặt trong Racket, nhưng không có trong ngôn ngữ "vợt". Tìm kiếm tên trong tài liệu Racket, và nếu bạn tìm thấy nó, sau đó sử dụng (yêu cầu ...) để nhập tên vào chương trình của bạn.
Sau đó chạy lại chương trình để tìm lỗi tiếp theo.
Một số chức năng được đặt tên khác nhau trong Guile và Racket, vì vậy hãy tra cứu tên trong tài liệu Guile và xem nó hoạt động như thế nào. Sau đó mở tài liệu Racket về cùng một chủ đề, và xem những gì nó được gọi là trong vợt.
Trong một số trường hợp, bạn có thể phải thực hiện các thay đổi lớn hơn. Nếu bạn không thể tìm thấy một số chức năng trong tài liệu Racket, hãy thử hỏi danh sách gửi thư. Nó có thể là nó chỉ đơn giản là có một tên khác nhau, hoặc ai đó thực hiện nó và đặt nó trên PLaneT (do đó nó sẽ không xuất hiện trong tài liệu cho đến khi bạn đã cài đặt gói).
Ví dụ về nhập khẩu srfi/1 vào ngôn ngữ R5RS.
#lang r5rs
(#%require srfi/1)
(xcons 1 2)
Sự khác biệt từ mã R4RS Đề án hiện đại?
Một điều cần chú ý là trong R4RS danh sách trống '() được tính là sai, không phải nó được hiểu là đúng.
Xem câu hỏi này cho nhiều điều để tìm cho ra:
Running SICP Pattern Matching Rule Based Substitution Code
Xem thêm danh sách các thay đổi từ tiêu chuẩn R5RS: List of changes from R4RS to R5RS
Nếu bạn đã bị mắc kẹt chặt chẽ với R5RS và R6RS tiêu chuẩn, sau đó các ngôn ngữ tương thích được xây dựng trong vợt có thể giúp đỡ. Xem: http://docs.racket-lang.org/guide/standards.html – dyoo
Bạn có thể chỉ định ngôn ngữ nào bạn đang khai báo trong DrRacket (R5RS/vợt/etc) không? Bạn có thể đưa ra các ví dụ về nơi mã bị phá vỡ không? – oobivat
@oobivat Tôi đã cố tình quét lưới rộng - câu hỏi đằng sau câu hỏi của tôi là "những thứ không chuẩn trong lược đồ guile" là gì. Nếu nó làm cho câu hỏi dễ dàng hơn để trả lời - sau đó tôi muốn cụm từ nó là "Những gì có khả năng phá vỡ với mã chương trình guile năm 1994 của tôi khi chạy trong Racket thiết lập để R5RS - và làm thế nào để sửa chữa nó?" – hawkeye