Permalink
Browse files

prelude

  • Loading branch information...
1 parent bddc88d commit e702efb0fad1c1a78c0197129764cbd17e8a52d0 @northOfThule northOfThule committed May 17, 2010
Showing with 17 additions and 11 deletions.
  1. +17 −11 rapport/kapitel/resultat.tex
@@ -468,25 +468,31 @@ \subsection{HIJi}
HIJi är skapat för att likna GHCi i så stor utsträckning som möjligt.
Genom att efterlikna GHCi kommer användare känna igen sig när de tar steget från HIJi till GHCi. Det blir för dem ett naturligt steg och kortar inlärningströskeln. Även för haskellprogrammerare som är vana användare av GHCi blir det lättare att använda sig av HIJi, de behöver inte fundera hur verktyget ska användas.
-\subsection{Language feutoeeras}
+\subsection{Prelude}
+I våra avgränsningar angav vi vilka delar av haskellspecifikationen vi skulle fokusera på. De delar som vi har fullt stöd för är lambda-funktioner, namngivna funktioner, algebraiska datatyper, pattern matching och guards.
+I HIJis förladdade modul, Prelude, har vi definerat upp ett antal funktioner som visar på att vi har implementerat dessa egenskaper från specifikationen.
+Alla funktioner som är definerade i Prelude är namngivna funktioner. Ett exempel på en namngiven funktion är \emph{id}.
+Algebraiska datatyper stöds och i Prelude har vi definerat upp datatypen Bool och ett par funktioner, däribland (||), som använder sig utav den här datatypen. Funktionen (||) använder sig av pattern matching. Resultatet av \emph{case x of} kommer matcha antingen mot \emph{True} eller \emph{False}.
+Funktionen \emph{filter} från Prelude är ett exempel på att guards fungerar. Filter är också ett exempel på att pattern matching och rekursiva funktioner är implementerade.
-I våra avgränsningar angav vi vilka delar av haskellspecifikationen vi valde att fokusera på.
-I vår modul Prelude har vi definerat upp en rad funktioner som visar på exempel på att vi lyckats implemetera det vi fokuserat på.
-
-Vi har stöd för namngivna funktioner och lambda-funktioner. Ett exempel på en namngiven funktion är id.
\begin{lstlisting}
+-- Utdrag ur Prelude.hs
+
+-- en namngiven funktion
id x = x
-\end{lstlisting}
-Algebraiska datatyper stöds också. I Prelude har vi definerat upp datatypen Bool och ett par exempel på när vi använder den. I funktionen \emph{(||) x y} har vi också ett exempel på pattern matching. Resultatet av x \emph{case x of} kommer matcha antingen mot \emph{True} eller \emph{False}.
-\begin{lstlisting}
+-- datatypen Bool
data Bool = True | False
+-- exempel av pattern match
(||) x y = case x of
True -> True
False -> y
-\end{lstlisting}
-
-Guards %TODO filter från johan
+-- exempel av pattern match,
+-- guards och rekursiva funktioner
+filter _ [] = []
+filter f (x:xs ) | f x = x : filter f xs
+ | otherwise = filter f xs
+\end{lstlisting}

0 comments on commit e702efb

Please sign in to comment.