(rontolisp) docs
← Functions

y-or-n-p

(y-or-n-p &optional format-control &rest format-arguments)

Asks a yes/no question and returns t or nil. The optional format control and its arguments are printed first, followed by " (y or n) "; then one line is read from standard input. A line starting with y or Y answers t, one starting with n or N answers nil, and anything else -- an empty line included -- re-asks, reprinting the whole prompt.

Lite: Common Lisp reads single CHARACTERS without echo, where this reads a whole line, so the answer is only taken once the user presses return. End of input answers nil instead of signalling, because a backend with no interactive user has no way to ask again.

(if (y-or-n-p "Delete ~A?" "old.sql")
    (delete-file "old.sql")
    (print "kept"))

Answering maybe prints Delete old.sql? (y or n) a second time; answering yes (or a bare y) then returns t and the file is deleted.

Backend support

All four backends -- one definition in rontolisp source over format and read-line.