File: callback.sml

package info (click to toggle)
smlsharp 4.1.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 123,732 kB
  • sloc: ansic: 16,725; sh: 4,347; makefile: 2,191; java: 742; haskell: 493; ruby: 305; cpp: 284; pascal: 256; ml: 255; lisp: 141; asm: 97; sql: 74
file content (23 lines) | stat: -rw-r--r-- 583 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
(**
 * callback.sml - An example of passing complex callbacks between ML and C.
 *
 * @copyright (C) 2021 SML# Development Team.
 * @author UENO Katsuhiro
 * @version $Id: callback.sml,v 1.4 2007/04/02 09:42:29 katsu Exp $
 *)

val f1 = _import "f1" : (((((()->())->())->())->())->())->()
val g1 = _import "g1" : ()->()->()->()->()

val () =
    f1 (fn h1 =>
           (print "h1\n";
            h1 (fn h2 =>
                   (print "h2\n";
                    h2 (fn h3 =>
                           print "h3\n")))))

val g2 = g1 ()
val g3 = g2 ()
val g4 = g3 ()
val () = g4 ()