Hi,

I have a question about the following function. 

I don't know how the definition after "where" are called.

For example, in ( D x2 (-y1) , b ++ b2 ) there is x2 defined in the
where-block. So does that mean that it calls the iteratin at line 7? But what is with
b2, does it also calls the line 7?

Who calls the definition in line 3 and who calls the def in line 7?

Many thanks 
Andre

1 test :: ( D , [Int] ) -> ( D , [S] ) -> ( D , [Int] )
2 test ( D x y , b ) ( D dx dy , st ) = ( D x2 (-y1) , b ++ b2 )
3    where ( x1 , y1 ) = head $ dropWhile ( ( > 0 ) . snd ) $ iterate inc (
x , y )
4
5         inc ( n , m ) = ( n+1 , m+1 ) 
6
7         ( b2 , x2 ) = head $ do
8                       S ( D x3 sty ) pl _ sb <- st
9                       guard $ sty == -y1
10                      return ( [1,2,3] ++ sb , x3 + sb)

-- 
**********************************************************
**
*           André Betz              *                      *
*           ----------              *                      *
*    EMail: [EMAIL PROTECTED]       *    WW                *
*      Web: http://www.andrebetz.de *   /__\               *
*      ICQ: 117759780               *  | oo |   _WWWWW_    *
*    Mobil: +49 (0)162 8847 391     * (|_()_|) /  o o  \   *
*   Office: +49 (0)9131 82611 27    *   \__/ (|  __O__  |) *
*     Home: +49 (0)911 6695 558     *  /|\/|\  \ \___/ /   *
* Tel./Fax: +49 (0)89  1488 224189  * |||||||| /-------\   *
*    Snail: Hirschelgasse 34        * |||||||||=========|  *
*           D-90475 Nürnberg        * |||||||||=========|  *
**********************************************************
**

_______________________________________________
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to