2013-01-19 27 views
5

Tôi đang sử dụng SML New Jersey trên Windows. Nếu test.sml là một tập tin SML tôi có thể thực hiện nó bằng cách chạy này tại dấu nhắc lệnh Windows:Chạy tệp SML nhưng không được để ở chế độ tương tác

C:\> sml test.sml 

sau đó tôi nhận được đầu ra SML thông thường và một dấu nhắc lệnh SML mới.

Standard ML of New Jersey v110.75 [built: Sat Sep 29 12:51:13 2012] 
[opening hw1.sml] 
val d2 = (1,1) : int * int 
val d3 = (1,1) : int * int 
val d4 = (2,1) : int * int 
val d5 = (1,2) : int * int 
val x7 = true : bool 
- 

Điều tôi muốn thay thế sẽ được thoát trở lại dấu nhắc lệnh Windows và không bị bỏ lại ở chế độ tương tác SML.

Tôi làm cách nào để thực hiện việc này?

Trả lời

8

Bạn có thử:

sml <test.sml 

Ngoài ra, sử dụng quản lý tổng hợp của nó (CM) SML/NJ thực sự cho phép bạn biên dịch một chương trình thành mã nhị phân và chạy chúng riêng rẽ. Các manual sẽ có thể cho bạn biết thêm (xem đặc biệt là phần 15 mô tả lệnh ml-xây dựng).

+0

Đề xuất của bạn hoạt động như một giấc mơ. Cảm ơn. – rlandster

3

Chạy SML/NJ theo cách đó, nó sẽ mở REPL (đọc-eval-print-loop). Vì vậy, nó sẽ chờ đợi cho các tờ khai mới để giải thích, cho đến khi bạn nói với nó để thoát.

Theo cách faq SML/NJ trên usage, sau đó

Chức năng OS.Process.exit là phương tiện thích hợp của quiting sml từ bên trong một chương trình.

Phải mất OS.Process.success hoặc OS.Process.failure làm đối số.

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