newtonsMethod f f' x precision
| xIsGoodEnough = x
| otherwise = newtonsMethod f f' x' precision
where
xIsGoodEnough = abs(f x) < precision
x' = x - ((f x)/(f' x))
f = (\x -> cos(tan(sin(x))) - x )
main
= print $ newtonsMethod f f
' 1 1.0e-16
bmV3dG9uc01ldGhvZCA6OiAoT3JkIGEsIE51bSBhLCBGcmFjdGlvbmFsIGEsIEZsb2F0aW5nIGEpICA9PiAoYSAtPiBhKSAtPiAoYSAtPiBhKSAtPiBhIC0+IGEgLT4gYQoKbmV3dG9uc01ldGhvZCBmIGYnIHggcHJlY2lzaW9uCiB8IHhJc0dvb2RFbm91Z2ggPSB4CiB8IG90aGVyd2lzZSA9IG5ld3RvbnNNZXRob2QgZiBmJyB4JyBwcmVjaXNpb24KIHdoZXJlCiAgeElzR29vZEVub3VnaCA9IGFicyhmIHgpIDwgcHJlY2lzaW9uCiAgeCcgPSB4IC0gKChmIHgpLyhmJyB4KSkKCmYgPSAoXHggLT4gY29zKHRhbihzaW4oeCkpKSAtIHggKSAKZicgPSAoXHggLT4gKC1jb3MoeCkgKiAoMS9jb3Moc2luKHgpKSleMiAqIHNpbih0YW4oc2luKHgpKSkpIC0gMSApCgptYWluID0gcHJpbnQgJCBuZXd0b25zTWV0aG9kIGYgZicgMSAxLjBlLTE2