Как досрочно прекратить программу программы? (Есть ли «выход»?) - PullRequest
4 голосов
/ 16 октября 2011

Я хотел бы что-то вроде:

(cond ((< x 3) (and (display "Error Message") (exit)))

(else (foo y))

Другими словами, я хотел бы отобразить сообщение и завершить работу, когда условиевстретились.Как я могу это сделать?Есть ли такая функция выхода?

Заранее спасибо!

Ответы [ 2 ]

6 голосов
/ 16 октября 2011

SRFI 23 обеспечивает error. В случае ошибок делать это намного лучше, чем вызывать exit, потому что это позволяет другому коду перехватить ошибку и выполнить обработку ошибки. (Некоторые реализации в любом случае реализуют exit как исключение, но это не исключает того, что использование error более уместно.)

SRFI 34 обеспечивает более полное средство исключения и может быть даже более подходящим, чем error.

3 голосов
/ 16 октября 2011

Схема R5RS и предыдущие версии не требуют функции выхода, хотя большинство реализаций предоставляют ее. Схема R6RS требует функции выхода. Даже без функции выхода, как правило, можно организовать поток управления вашей программы так, чтобы он просто «падал с конца» после завершения. Если вам нужен выход, а ваша реализация его не предоставляет, вы можете создать свой собственный с помощью call / cc.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...