Since I cant find an email address for you just wanted to let it be known that I have an implementation of that random number generator you linked to in your code and on your blog. I still have to hammer out some bugs but it pretty much works well. Probably should build a computational expression using the State Monad to make it a bit more beautiful but for now I am happy with what I have written and wouldn't mind sharing it with you, or anyone.

By on 7/9/2008 12:02 AM ()

Hi Birchoff,

Sorry for the late reply, I've been a bit inactive with respect to F# lately.

But if you're reading this I'd still be interested, although I already ported the Haskell libs random number generator.

You can reach me at kurt.schelfthout at gmail.com

cheers!

Kurt

By on 8/8/2008 2:32 PM ()

I notice that fscheck's conditional expressions aren't quite lazy enough. For example, say I have

1
let prop_foo = forAll (Gen.Int) (fun a -> false ==> prop (printf "foo\n"; true))

quickCheck prop_foo will print foo 100 times before saying that the arguments were exhausted. But if the left-hand side of ==> is false, the right-hand side shouldn't be evaluated at all!

Haskell gets around this problem by its implicit laziness (to say nothing of its referential transparency). QCheck for sml requires the arguments of ==> to be functions, and achieves its laziness that way.

Actually QCheck for sml has a slightly different design from fscheck, but the authors seem to have gotten around some of the limitations you've run into. Have you looked at it?

galen

By on 5/13/2008 3:22 PM ()
IntelliFactory Offices Copyright (c) 2011-2012 IntelliFactory. All rights reserved.
Home | Products | Consulting | Trainings | Blogs | Jobs | Contact Us | Terms of Use | Privacy Policy | Cookie Policy
Built with WebSharper