354 karma · joined February 1, 2011
At a glance: älä, kala, -kin, nenä, nimi, sama, sinä are exact Finnish words and "pimeja" is a slight alteration of "pimeä". Kiwen, lipu, linja and walo are probably Finnish inspired as well.
Another common trend seems to be using a simplified and shortened forms of the phonetic spelling of English words such as "ale" (all), "en" (and), "insa" (inside), "jaki" (yucky), "jelo" (yellow), "kama" (come), "ken" (can), "kule" (color), "lukin" (looking), "mani" (money), "mi" (me), "mun" (moon), "nanpa" (number), "pata" (brother), "suwi" (sweet), "tawa" (towards), "toki" (talking), "tu" (two), "wan" (one) and "wile" (will).
Slightly distorted, but still close: "anpa" (under), "kulupu" (sounds like a Japanese transliteration of group, グループ), "pilin" (feeling), "sewi" (ceiling) and "sike" (circle).
This actually helps a lot in memorizing the vocabulary. :)
I guess there's something funky in the unicode handling on the site.
do { line <- getLine; putStrLn line }As it says, you can evaluate a single line Haskell "expression" and top-level declarations (like the sieve example) are not expressions. In addition, the sieve example declares an infinite list so there's no sensible way to print it.
You can fix all the above by using a let-expression on single line and only evaluating a finite part of the list using the 'take' function.
let { primes = sieve [2..]; sieve (p:xs) = p : sieve [x | x <- xs, x `mod` p /= 0] } in take 10 primesVista (at least after the first service pack) is a solid OS. I still run it on my gaming PC (which also dual boots to Ubuntu) and I don't see any reason whatsoever to "upgrade" to W7 or W8.
In addition, the "Challenge" add-on was given free to those who bought the original game.
This is a complete non-issue as far as Steam is concerned (the complaint about publishers shutting down multi-player servers is certainly valid). There is nothing that you could do with the game even if you still had it in your Steam library.
I'm not saying that Microsoft doesn't have a chance at all but I think the odds are against Windows phones ever reaching a significant market share no matter how much capital and R&D they stack behind it.
If types aren't non-nullable by default then any function parameter or return value can potentially be null and a robust program practically needs to have null checks _everywhere_. Otherwise, when your program throws a NullPointerException you'll have no way to know where that null originated from.
In Haskell, the types guarantee that you never ever have to check for null (in fact, you can't even) unless the function's type explicitly allows for the possibility of having a null. In addition, you have several ways to compose function calls that might return null in such a way that you don't have to check for each null case separately.
It still has nullable types, side-effects aren't tracked in the type-system (so any function can potentially do anything) and the presence of sub-typing has several unpleasant consequences, for example: lack of full type-inference, generally more complex type signatures than in Haskell and having to deal with covariance vs contravariance.
All you need is a sophisticated type-system and smart type-inference that works everywhere (not just locally) and you'll be able to be just as productive as with today's popular dynamic languages but get all the benefits of static verification.
At least I've personally found that doing linear algebra, physics calculations or anything with more complex equations in Lisp-like languages is a huge pain.
cycle seq = circular where circular = seq ++ circular
(or if you want to really golf it) cycle = fix . (++)
Ok, to be fair the Scala code is a bit more generic as it works for any abstract sequence, but still, Scala's syntax is awfully heavy compared to Haskell.That's one reason I still prefer Haskell even though Scala is easier to sneak into enterprise projects thanks to JVM. Not to mention that Haskell gives stronger static guarantees and has a more sophisticated type inference system.
So even if you type-annotate everything, you will never get compile-type type errors? That makes the whole thing seem completely pointless.
However, the actual RTS part is woefully mediocre and has problems such as bad unit AI and bad path-finding. At least this was my impression of v1.0. I guess I should take another look one of these days and see if the numerous patches have improved things.
In fact, Bryan O'Sullivan (who wrote Real World Haskell) just held a tutorial session on Haskell a couple of weeks ago where people completely new to the language implemented simple Unix tools like "wc". I don't think monads were mentioned at all.
Also, I had several occurrences throughout 2011 but so far hadn't lost anything during 2012, so either something has been fixed or I've just been lucky. :)
So, if you've noticed zero length files lately, can you check the timestamp on the last update? Is it recent or over a year ago? You can also go to that date in your event log in the Dropbox web UI and see what was happening around that time.
Prelude> 0.3 - 0.2 == 0.2 - (0.1 :: Rational)
True
Above, we explicitly declare one of the literals as Rational, and the rest are inferred as having the same type (since the standard library does not allow you to do arithmetics or comparisons between discrepant types).