\end{block}
\column{.49\textwidth}
\pause{}
- \begin{lstlisting}
+ \begin{lstlisting}[language=Clean]
:: DSL = LitI Int | LitB Bool
| Var String | Plus DSL DSL
| Minus DSL DSL | And DSL DSL
\end{block}
\pause{}
\column{.49\textwidth}
- \begin{lstlisting}
+ \begin{lstlisting}[language=Clean]
:: Env = ...
:: DSL a = DSL (Env -> a)
}
\column{.49\textwidth}
\begin{onlyenv}<2->
- \begin{lstlisting}
+ \begin{lstlisting}[language=Clean]
:: Env = ...
:: Evaluator a = Evaluator (Env -> a)
:: PrettyPrinter a = PP String
\end{itemize}
\end{block}
\pause{}
- \begin{lstlisting}
+ \begin{lstlisting}[language=Clean]
class arith v where
lit :: t -> v t Expr
(+.) infixl 6 :: (v t p) (v t q) -> v t Expr | +, zero t & isExpr p & isExpr q
\begin{frame}[fragile]
\frametitle{Control flow}
- \begin{lstlisting}
+ \begin{lstlisting}[language=Clean]
class IF v where
IF :: (v Bool p) (v t q) (v s r) -> v () Stmt | ...
(?) infix 1 :: (v Bool p) (v t q) -> v () Stmt | ...
\begin{frame}[fragile]
\frametitle{Assignment and Input/Output}
- \begin{lstlisting}
+ \begin{lstlisting}[language=Clean]
:: DigitalPin = D0 | D1 | D2 ...
:: AnalogPin = A0 | A1 | A2 ...
\begin{frame}[fragile]
\frametitle{Shared Data Sources and Assignment}
- \begin{lstlisting}
+ \begin{lstlisting}[language=Clean]
:: In a b = In infix 0 a b
:: Main a = {main :: a}
\begin{frame}[fragile]
\frametitle{Examples}
- \begin{lstlisting}
+ \begin{lstlisting}[language=Clean]
blink = task \blink=(\x.
IF (x ==. lit True)
(ledOn LED1)