Sau một vài năm lập trình, có vẻ như thời gian để cuối cùng tấn công SICP. Tuy nhiên, thay vì chỉnh sửa và chạy mọi thứ trong Emacs, tôi muốn sử dụng một trình soạn thảo khác và đơn giản là makefile để chạy tất cả các bài tập. Điều này dường như không hoàn toàn chính thức, bởi vì tôi không thể tìm thấy bất kỳ tham chiếu đến một cái gì đó cơ bản như chạy một tập tin cho đến khi một cái gì đó "thất bại". Vì vậy, làm cách nào để chạy Đề án trên vỏ sao cho nó tải một tệp, đánh giá từng biểu thức theo thứ tự và kết thúc bằng mã thoát khác 0 ngay sau khi nó gặp một tuyên bố đánh giá là #f
hoặc với mã thoát bằng không nếu toàn bộ tệp được đánh giá thành công? Điều gần gũi nhất với một giải pháp cho đến nay:Chạy các tệp lược đồ SICP như các bài kiểm tra lỗi nhanh
$ cat ch1.scm
...
(= 1 2)
$ scheme --load ch1.scm
...
Loading "ch1.scm"... done
1 ]=>
Edit: Nói cách khác, có một số cách để làm cho dừng thẩm định trong khi tải ch1.scm nếu bất kỳ của các biểu thức trong đó đánh giá để #f
?
không phải bạn đang tìm kiếm một thư viện unit-testing như RackUnit (http://docs.racket-lang.org /rackunit/index.html)? –
Nó sẽ là một phương sách cuối cùng, bởi vì trong các ngôn ngữ như Python và Bash nó sẽ là quá mức cần thiết. – l0b0
Về cơ bản những gì bạn đang cố gắng làm trong bash, có thể được thực hiện trực tiếp trong Đề án, với tôi cách tiếp cận của bạn trông giống như overkill :) –