學 Haskell 果然是要趁早
幾年前, length 的類型是介個樣子滴
length :: [a] -> Int
現在你打開 GHCi 捏,是介個樣子滴,(搜 FTP ,並沒有真相
length :: Foldable t => t a -> Int
當然了,這其實並不會有什麼大的影響,因為我們有
instance Foldable []
不過呢,如果你剛開始學 Haskell ,你很可能根本不知道 Foldable 是 TMD 什麼鬼。而且這也造成了之前在知乎上被提到的坑新手用的
minimum (1, 2) == 2
不過我為啥時隔這麼久把這個陳芝麻爛穀子拿出來說呢?因為我今天不知道哪根筋不對勁去看了這個 Libraries/Proposals/SemigroupMonoid a€「 Haskell Prime
大致內容和之前的 AMP 差不多,就是說中央已經研究決定了(其實並沒有),那個 Semigroup ,以後你來當 Monoid 的 superclass ,然後 Semigroup 就念了兩句詩(以下省略十四字。
突然好慶幸自己學 Haskell 的時候還沒有這些東西,雖然入門一點之後發現不是現在這麼嚴格還經常吐槽,然而如果入門階段有這些東西就難得不是一點半點了。我對大 Haskell 神教未來的傳教事業感到非常憂慮。
當然了,每個語言都會演化,不過一般語言的演化會使入門變簡單,進階變困難,然而我大 Haskell 的演化是反著來的,入門變困難,進階變簡單。
推薦閱讀:
※第一門編程語言就是 Haskell 之流是怎樣一種體驗?
※EDSL相關雜記(2)
※C++、Haskell、Scala 和 Rust 究竟哪個最複雜?
※Comonad有什麼實際用途?
※OCaml在寫編譯器上比Haskell好在哪?為何Rust第一個版本採用了OCaml?
TAG:Haskell |