[Haskell-cafe] How to implement digital filters using Arrows

Captain Freako capn.freako at gmail.com
Tue Nov 1 21:30:39 CET 2011


Hi John,

I'm trying to use the GHCI debugger on this code:

 20 instance ArrowLoop SF where
 21     loop (SF f) = SF $ \as ->
 22         let (bs, cs) = unzip (f (zip as (stream cs))) in bs
 23       where stream ~(x:xs) = x : stream xs
 24
 25 swap :: (a,b) -> (b,a)
 26 swap (x,y) = (y,x)

in order to watch the recursion of the `loop' function unfold.
However, when I single step through the code, I never stop on line 22
(where I could, presumably, peek in at `bs' and `cs', in order to see
them develop):

*SF> :break swap
Breakpoint 1 activated at SF.hs:26:1-18
*SF> runSF (loop (arr swap)) [1,2,3]
Stopped at SF.hs:26:1-18
_result :: (b, a) = _
[SF.hs:26:1-18] *SF> :step
Stopped at SF.hs:26:14-18
_result :: (b, a) = _
x :: a = _
y :: b = _
[SF.hs:26:14-18] *SF> :
[1Stopped at SF.hs:23:34-42
_result :: [a] = _
xs :: [a] = _
[SF.hs:23:34-42] *SF> :
Stopped at SF.hs:23:13-42
_result :: [a] = _
[SF.hs:23:13-42] *SF> :
Stopped at SF.hs:23:30-42
_result :: [a] = _
x :: a = _
xs :: [a] = _
[SF.hs:23:30-42] *SF> :
(Pattern repeats.)

Do you have any advice?

Thanks,
-db



On Mon, Oct 31, 2011 at 3:19 PM, John Lask <jvlask at hotmail.com> wrote:
> On 1/11/2011 1:35 AM, Captain Freako wrote:
>
> you need to study ArrowLoop and understand that. In the code



More information about the Haskell-Cafe mailing list