I haven't read the whole of Chris Smith's book yet, but so far I can recommend it, it is well written, nicely formatted and generally easy to read. I have two other great F# books as well, but my impression is that Chris Smith's book is the best introduction
to F# I've seen yet.
Don & C9, thanks for another great video!
BTW: I simply cannot resist the temptation to point out that one of the code examples can be simplified, in the allFiles function, the following is used:
I guess all scientists dealing with functions would benefint from being able to write function signatures/types the way Eric does on the whiteboard here (not needing to know everything Eric knows about type theory, just the basics displayed here!), as it
is a very powerful tool/notation for clear thinking and presentation. (In addition to getting some type checking and inference for free).
Have you really tried "tasting" the syntax (ie worked with it for a couple of weeks)? If not, how can you know you do not like it?
Even though there are religious wars about syntax, I guess most people would adapt pretty easily to another syntax if they really were convinced there was a substantial benefit in using another language.
If our brains didn't adapt easily to weird syntaxes, we wouldn't have seen all those C-inspired syntaxes and Perl would have remained a sick fantasy inside only one man's brain.
One small comment:
I noticed this in the code for the editor add-in:
We've been doing the same thing in an in-house framework, specifying ordering constraints and letting the framework calculate a total ordering from the partial ordering. However, we concluded that a statement like:
could sometimes, depending upon the time of the day, day of the week, the mood of the programmer, the weather etc,
be interpreted as the current component being constrained to be before "Selection", other times to be interpreted as "Selection" being constrained to be before the current component. (ie, totally ambiguous)
We fond the situation to improve a lot when we added a little 'Me' at the end of 'Before' (and 'After'), like: