home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Datafile PD-CD 2
/
DATAFILE_PDCD2.iso
/
utilities
/
_gofer
/
!Gofer
/
archives
/
Demos
/
Lamvar
/
trace
< prev
Wrap
Text File
|
1993-02-12
|
1KB
|
22 lines
-----------------------------------------------------------------------------
-- trace :: String -> a -> a Print the string and return the given value
--
-- This file brings in just enough of the lambda var primitives to implement
-- a version of the impure hbc debugging function `trace'. Note that, this
-- can only be used in conjunction with a version of the Gofer interpreter
-- that has been compiled to include these primitives. See the file
-- lambdaVr for more details.
-----------------------------------------------------------------------------
primitive primLvPure "primLvPure" :: Proc a -> a
primitive primLvReturn "primLvReturn" :: a -> Proc a
primitive primLvBind "primLvBind" :: Proc a -> (a -> Proc b) -> Proc b
primitive primLvPutch "primLvPutchar" :: Char -> Proc ()
trace :: String -> a -> a
trace s a = primLvPure (f s)
where f [] = primLvReturn a
f (x:xs) = primLvBind (primLvPutch x) (\_ -> f xs)
-- End of trace --------------------------------------------------------------