From: Christiaan Baaij Date: Wed, 3 Mar 2010 09:23:50 +0000 (+0100) Subject: Make higher-ord cpu example even shorter X-Git-Url: https://git.stderr.nl/gitweb?p=matthijs%2Fmaster-project%2Fdsd-paper.git;a=commitdiff_plain;h=8cf5b5c041beee1dd39678bc70b7ec934ecc4d98;ds=sidebyside Make higher-ord cpu example even shorter --- diff --git "a/c\316\273ash.lhs" "b/c\316\273ash.lhs" index 2fa6b86..9fb9647 100644 --- "a/c\316\273ash.lhs" +++ "b/c\316\273ash.lhs" @@ -1192,7 +1192,7 @@ the vectors of the \acro{FIR} code to a length of 4, is depicted in \subsection{Higher order CPU} \begin{code} -fu op inputs (addr1, addr2) regOut = (regIn, regOut) +fu op inputs (addr1, addr2) = regIn where in1 = inputs!addr1 in2 = inputs!addr2 @@ -1204,14 +1204,13 @@ cpu :: Word -> [(Index 6, Index 6) | 4] -> State [Word | 4] -> (State [Word | 4], Word) cpu input addrs (State fuss) = (State fuss', out) where - fures = [ fu const inputs (addrs!0) (fuss!0) + fuss' = [ fu const inputs (addrs!0) (fuss!0) , fu (+) inputs (addrs!1) (fuss!1) , fu (-) inputs (addrs!2) (fuss!2) , fu (*) inputs (addrs!3) (fuss!3) ] - (fuss', outputs) = unzip fures - inputs = 0 +> (1 +> (input +> outputs)) - out = head outputs + inputs = 0 +> (1 +> (input +> fuss)) + out = head fuss \end{code} \section{Related work}