One approach 

One function to compute the next iterate

Another function to call the computation function until results are within some tolerance 

It's usually presented as separation of control and computation 😎

--
Sent from an expensive device which will be obsolete in a few months
Casey

On Sep 3, 2017 1:23 AM, "mike h" <mike_k_houghton@yahoo.co.uk> wrote:
Hi,

To help me in learning Haskell I started blogging about some of the things I’ve looked at. 
One such topic was calculating square roots ‘by hand’ and then deriving a Haskell algorithm. 
I wrote about the well known  technique here
http://gitcommit.co.uk/2017/08/25/the-root-of-the-problem-part-1/

and it it is really quite a simple method. 

The second part of the post will be an implementation in Haskell. 

I then tried implementing it  and got something that works but really its not very pleasant to look at! And its something I don’t want to post! Some parts are fine but I think I locked myself into the notion that it had to be using State and  really the end result is pretty poor. 

I know this i perhaps a ‘big ask’ but I’d really appreciate any suggestions, solutions, hints etc. I will of course give full attribution. 

I’ve created a gist of the code here
https://gist.github.com/banditpig

Many Thanks

Mike

_______________________________________________
Beginners mailing list
Beginners@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners