fay-0.24.2.0: examples/showExamples.hs
import FFI
import Prelude
main = do
let a1 = ("string",1) :: (String,Int)
putStrLn $ showPair a1
putStrLn $ showList [1..3]
putStrLn $ showString "Just a plain string"
l1 <- readList "[4,5,6]"
putStrLn . showList . map (1+) $ l1
(s,i) <- readPair "[\"first\",2]"
putStrLn $ s ++ " was first and " ++ showInt i ++ " was second"
showInt :: Int -> String
showInt = ffi "JSON.stringify(%1)"
showString :: String -> String
showString = ffi "JSON.stringify(%1)"
showPair :: (String,Int) -> String
showPair = ffi "JSON.stringify(%1)"
showList :: [Int] -> String
showList = ffi "JSON.stringify(%1)"
readList :: String -> Fay [Int]
readList = ffi "JSON.parse(%1)"
readPair :: String -> Fay (String,Int)
readPair = ffi "JSON.parse(%1)"
{-
compile with:
fay showExamples.hs
run with: (on Debian)
nodejs showExamples.hs
Produces:
["string",1]
[1,2,3]
"Just a plain string"
[5,6,7]
first was first and 2 was second
-}