File: letslashcc

package info (click to toggle)
scheme9 2025.08.12-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 4,080 kB
  • sloc: lisp: 16,752; ansic: 11,869; sh: 806; makefile: 237; sed: 6
file content (14 lines) | stat: -rw-r--r-- 397 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
S9 LIB  (let/cc <name> . <body>)  ==>  object

        (load-from-library "letcc.scm")

Bind the current continuation to <name> and evaluate <body> with
that binding in effect. 

(let/cc exit
  (letrec
    ((f (lambda (x)
          (cond ((null? x) 0)
                ((pair? x) (+ 1 (f (cdr x))))
                (else      (exit 'foo))))))
    (f '(1 2 3 . 4))))                         ==> foo