{ "metadata": { "language": "haskell", "name": "", "signature": "sha256:a97e75023c94aa5ee7bcd22c902e508c1e4d91e89ccea56df5c4fec8f369f94a" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "code", "collapsed": false, "input": [ "import IHaskell.Display\n", "\n", "-- My widget type\n", "data Slider = Slider\n", "\n", "instance IHaskellDisplay Slider where\n", " display Slider = return $ Display []\n", " \n", "instance IHaskellWidget Slider where\n", " targetName _ = \"WidgetModel\"\n", " open _ s = s undefined >> error \"what\"\n", " " ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 1 }, { "cell_type": "code", "collapsed": false, "input": [ "Slider" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data" } ], "prompt_number": 2 }, { "cell_type": "code", "collapsed": false, "input": [ "import Text.Parsec\n", "import Text.Parsec.String\n", "import Text.Parsec.Prim\n", "import Text.Parsec.Char\n", "\n", "data List = List [Float] deriving Show\n", "\n", "let -- Parse a nonempty int list like [1, 2, 3]\n", " parser :: Parser List\n", " parser = do\n", " char '['\n", " values <- option [] $ many1 (try float <|> int)\n", " char ']'\n", " return $ List values\n", " \n", " -- Parse an element of an int list, like \"3, \"\n", " int :: Parser Float\n", " int = do\n", " value <- many1 $ oneOf \"0123456789\"\n", " optional $ char ','\n", " whitespace\n", " return (fromIntegral (read value :: Int) :: Float)\n", " \n", " float :: Parser Float\n", " float = do\n", " value <- many1 $ oneOf \"0123456789\"\n", " char '.'\n", " after <- many1 $ oneOf \"0123456789\"\n", " optional $ char ','\n", " whitespace\n", " return (read (value ++ \".\" ++ after) :: Float)\n", " \n", " -- Parse any whitespace\n", " whitespace = many $ oneOf \" \\t\"" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 1 }, { "cell_type": "code", "collapsed": false, "input": [ "parser" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
\n", "
\n"
       ],
       "metadata": {},
       "output_type": "display_data"
      }
     ],
     "prompt_number": 9
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [],
     "language": "python",
     "metadata": {},
     "outputs": []
    }
   ],
   "metadata": {}
  }
 ]
}