Some example \gls{mTask}-\glspl{Task} --- using almost all of their
functionality --- are shown in Listing~\ref{lst:exmtask}. The \CI{blink}
\gls{mTask} show the classic \gls{Arduino} blinking \gls{LED} application that
blinks a certain \gls{LED} every second. The \CI{thermostat} expression will
enable a digital pin powering a cooling fan when the analog pin representing a
temperature sensor is too high. \CI{thermostat`} shows the same expression but
now using the assignment style \gls{GPIO} technique. The \CI{thermostat}
example also shows that it is not necessary to run everything as a \CI{task}.
The main program code can also just consist of the contents of the root
\CI{main} itself. Finally a thermostat example is shown that also displays the
temperature on its \gls{LCD} while regulating the temperature.

\begin{lstlisting}[language=Clean,%
	label={lst:exmtask},caption={Some example \gls{mTask}-\glspl{Task}}]
a0 = aIO A0
d0 = dIO D0

blink = task \blink.(\x.
		IF (x ==. lit True) (ledOn led) (ledOff led) :.
		blink (lit 1000) (Not x)
	In {main=blink (lit 1000) True}

thermostat = {main = digitalWrite D0 (analogRead A0 >. lit 50) }

thermostat` = {main = d0 =. a0 > lit 50 }

thermostat`` = task \th.(\lcd.
		d0 =. a0 > lit 50 :.
		print lcd a0      :.
		th (lit 1000) lim   ) In
	LCD 16 12 [] \lcd.{main = th (lit 1000) lim }
\end{lstlisting}
