{
  "version": "https://jsonfeed.org/version/1", 
  "title": "Haskell", 
  "description": "Haskell is an advanced purely-functional programming language.", 
  "home_page_url": "https://www.v2ex.com/go/haskell", 
  "feed_url": "https://www.v2ex.com/feed/haskell.json", 
  "icon": "https://cdn.v2ex.com/navatar/0fcb/c61a/531_large.png?m=1421573082", 
  "favicon": "https://cdn.v2ex.com/navatar/0fcb/c61a/531_normal.png?m=1421573082", 
  "items": [
    {
      "author": {
        "url": "https://www.v2ex.com/member/pythonee", 
        "name": "pythonee", 
        "avatar": "https://cdn.v2ex.com/avatar/4b6e/52b7/29622_large.png?m=1642211709"
      }, 
      "url": "https://www.v2ex.com/t/834182", 
      "date_modified": "2022-02-16T03:39:54+00:00", 
      "content_html": "<p>\u4f5c\u4e3a\u51e0\u5e74\u524d\u53ea\u770b\u8fc7 learn you haskell for great good \uff0c\u6572\u8fc7\u4e00\u4e9b\u7ec3\u4e60\u4ee3\u7801\u7684\u4eba\u58eb\uff0c\u8fd9\u4e2a\u95ee\u9898\u771f\u4e0d\u660e\u767d\u4e86</p>\n", 
      "date_published": "2022-02-16T03:38:15+00:00", 
      "title": "\u54ea\u4e2a\u51fd\u6570\u8fd4\u56de\u53c2\u6570\u672c\u8eab\uff1f", 
      "id": "https://www.v2ex.com/t/834182"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/ekd123", 
        "name": "ekd123", 
        "avatar": "https://cdn.v2ex.com/gravatar/ff2ede0a2d7a7679573e096039935776?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/811919", 
      "title": "GHC 9.2 \u53d1\u5e03\u4e86", 
      "id": "https://www.v2ex.com/t/811919", 
      "date_published": "2021-10-31T10:36:03+00:00", 
      "content_html": "<p>\u6d88\u606f\u5143\uff1a <a href=\"https://discourse.haskell.org/t/ghc-9-2-1-released/\" rel=\"nofollow\">https://discourse.haskell.org/t/ghc-9-2-1-released/</a></p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Jex", 
        "name": "Jex", 
        "avatar": "https://cdn.v2ex.com/avatar/181d/697b/45304_large.png?m=1416983673"
      }, 
      "url": "https://www.v2ex.com/t/505480", 
      "title": "\u90a3\u672c\u4e66\u53ef\u4ee5\u79f0\u4e3a\u7f16\u7a0b\u754c\u7684\u300a\u8475\u82b1\u5b9d\u5178\u300b\uff1f", 
      "id": "https://www.v2ex.com/t/505480", 
      "date_published": "2018-11-07T10:09:04+00:00", 
      "content_html": "<p>\u6b32\u7ec3\u795e\u529f\uff0c\u5fc5\u5148\u81ea\u5bab\uff0c\u8bf4\u7684\u5c31\u662f\u2026\u2026\uff1f</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/sirqiao", 
        "name": "sirqiao", 
        "avatar": "https://cdn.v2ex.com/avatar/1457/171f/174982_large.png?m=1632986068"
      }, 
      "url": "https://www.v2ex.com/t/349447", 
      "title": "\u56fd\u5185\u6709\u4ec0\u4e48\u597d\u7684 Haskell \u793e\u7fa4\uff08 qq/wechat/\u8bba\u575b\uff09\u5417?", 
      "id": "https://www.v2ex.com/t/349447", 
      "date_published": "2017-03-22T06:00:52+00:00", 
      "content_html": "\u60f3\u8981\u52a0\u5165 Haskell \u6216\u8005 lambda \u7684\u5927\u5bb6\u5ead\u554a\uff01"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/luckypoem", 
        "name": "luckypoem", 
        "avatar": "https://cdn.v2ex.com/gravatar/4437e584f69737b3b6f9139e440b9fec?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/322744", 
      "title": "\u5982\u4f55\u4fee\u590d\u9519\u8bef\u201cVariable not in scope: md5 :: C8.ByteString -> a0\u201d?", 
      "id": "https://www.v2ex.com/t/322744", 
      "date_published": "2016-11-23T10:20:10+00:00", 
      "content_html": "\u5404\u4f4d\u597d\u3002\r<br />\r<br />\r<br />\r<br />git clone <a target=\"_blank\" href=\"https://github.com/ian-ross/blog\" rel=\"nofollow\">https://github.com/ian-ross/blog</a> ian-ross-blog\r<br />\r<br />cd ian-ross-blog\r<br />\r<br />cd build\r<br />\r<br />i modified blog.hs:\r<br />\r<br />delete &quot;import System.Locale (defaultTimeLocale)&quot;\r<br />\r<br />change &quot;import Data.Time.Format (formatTime)&quot; to be\r<br />\r<br />&quot;import Data.Time.Format (formatTime, defaultTimeLocale)&quot;\r<br />\r<br />then i ran &quot;ghc --make blog.hs&quot;,\r<br />\r<br />root@AR:/usr/local/ian-ross-blog/build# ghc --make blog.hs\r<br />\r<br />[1 of 2] Compiling TikZ ( TikZ.hs, TikZ.o )\r<br />\r<br />TikZ.hs:148:23: error:\r<br />\r<br />Variable not in scope: md5 :: C8.ByteString -&gt; a0\r<br />\r<br />root@AR:/usr/local/ian-ross-blog/build#\r<br />\r<br />\u90a3\u4e48\uff0c\u5982\u4f55\u4fee\u590d\u9519\u8bef\u201c Variable not in scope: md5 :: C8.ByteString -&gt; a0 \u201d?"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/yocoso", 
        "name": "yocoso", 
        "avatar": "https://cdn.v2ex.com/gravatar/6b6b7cfaa2ad432e0fb8c48d44824ffc?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/283133", 
      "date_modified": "2016-06-02T22:51:53+00:00", 
      "content_html": "<p>\u9996\u5148\u6211\u77e5\u9053\uff0c\u5b83\u5f88\u5c0f\u4f17\u3002</p>\n<p>\u7136\u540e\u5f88\u591a\u4eba\u90fd\u8bf4\uff0c\u5b83\u7684\u51fd\u6570\u5f0f\u7f16\u7a0b\u65b9\u5f0f\u662f\u5f88\u503c\u5f97\u5b66\u4e60\u7684\uff0c\u54ea\u6015\u4f60\u4e0d\u7528\u8fd9\u95e8\u8bed\u8a00\uff0c\u5b83\u7ed9\u4f60\u7f16\u7a0b\u601d\u7ef4\u65b9\u5f0f\u7684\u542f\u8fea\u662f\u5f88\u5927\u7684\u3002\n\u516c\u53f8\u6709\u4eba\u7ec4\u7ec7\u4e00\u8d77\u5b66\u4e60 haskell, \u60f3\u77e5\u9053\uff0c\u5b83\u662f\u5426\u503c\u5f97\u6211\u4ed8\u51fa\u65f6\u95f4\u3002</p>\n<p>\u56e0\u4e3a\u65f6\u95f4\u6709\u9650\uff0c\u5982\u679c\u82b1\u65f6\u95f4\u53c2\u4e0e\u5b66\u4e60 haskell \uff0c\u5fc5\u987b\u653e\u4e0b\u53e6\u4e00\u4e9b\u6709\u4ef7\u503c\u7684\u5b66\u4e60.</p>\n<p>\u6211\u7684\u4e3b\u7f16\u7a0b\u8bed\u8a00\u662f javascript \uff0c\u540c\u6837\u662f\u51fd\u6570\u5f0f\u7f16\u7a0b\uff0c haskell \u7ed9\u6211\u5e26\u6765\u591a\u5927\u7684\u601d\u7ef4\u8f6c\u53d8\uff1f</p>\n<p>\u6211\u4e5f\u4e0d\u6253\u7b97\u4ee5\u540e\u9760 haskell \u6362\u5de5\u4f5c\u3002 javascript \u662f\u6211\u5c06\u4e00\u76f4\u575a\u6301\u7684\u8bed\u8a00\u3002</p>\n<p>\u4e0d\u77e5\u9053 haskell \u80fd\u7ed9\u6211\u5e26\u6765\u7684\u6536\u83b7\u662f\u5426\u9700\u8981\u53c2\u4e0e\u4e00\u4e2a\u9700\u8981\u6bcf\u5468\u6709 commitment \u5b66\u4e60\u5c0f\u7ec4\u6765\u5b9e\u73b0\uff1f</p>\n", 
      "date_published": "2016-06-02T22:51:05+00:00", 
      "title": "Haskell \u8fd9\u95e8\u8bed\u8a00\u600e\u4e48\u6837\uff1f", 
      "id": "https://www.v2ex.com/t/283133"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/scarlex", 
        "name": "scarlex", 
        "avatar": "https://cdn.v2ex.com/avatar/1a55/1b73/33193_large.png?m=1384587216"
      }, 
      "url": "https://www.v2ex.com/t/262152", 
      "title": "\u5199\u4e86\u7bc7 Applicative \u7684\u5c0f\u603b\u7ed3~", 
      "id": "https://www.v2ex.com/t/262152", 
      "date_published": "2016-03-09T04:17:50+00:00", 
      "content_html": "\u521a\u770b\u5230\u300a\u8da3\u5b66\u6307\u5357\u300b\u7684 Applicative \u90e8\u5206\uff0c\u5199\u4e86\u7bc7\u5c0f\u603b\u7ed3\uff0c\u6b22\u8fce\u4ea4\u6d41\u5b66\u4e60~\r<br /><a target=\"_blank\" href=\"http://scarletsky.github.io/2016/03/07/what-is-applicative-in-haskell/\" rel=\"nofollow\">http://scarletsky.github.io/2016/03/07/what-is-applicative-in-haskell/</a>"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/fatelovely", 
        "name": "fatelovely", 
        "avatar": "https://cdn.v2ex.com/avatar/51c2/b550/40364_large.png?m=1539158057"
      }, 
      "url": "https://www.v2ex.com/t/259977", 
      "title": "\u6709\u6ca1\u6709\u5c0f\u4f19\u4f34\u4e00\u8d77\u6765\u56e2\u8d2d Haskell Programming \u8fd9\u672c\u4e66", 
      "id": "https://www.v2ex.com/t/259977", 
      "date_published": "2016-02-29T10:41:49+00:00", 
      "content_html": "<p>\u5173\u4e8e\u8fd9\u672c\u4e66\u7684\u8be6\u60c5\uff0c\u53ef\u4ee5\u70b9\u51fb\u8fd9\u91cc<a target=\"_blank\" rel=\"nofollow\" href=\"http://haskellbook.com/\">Haskell Programming</a>\uff0c\u770b\u8d77\u6765\u662f\u4e00\u672c\u5f88\u68d2\u7684\u4e66~</p>\n\n<p>\u6700\u8fd1\u81ea\u5df1\u5728\u5b66 Haskell \uff0c\u4e0d\u662f\u4e3a\u4e86\u627e\u5de5\u4f5c\uff0c\u5c31\u662f\u60f3\u5b66\u4e00\u70b9\u4e0d\u4e00\u6837\u7684\u77e5\u8bc6\uff0c\u8bb0\u5f97\u66fe\u7ecf\u770b\u8fc7\u8fd9\u6837\u4e00\u53e5\u8bdd\uff1a</p>\n\n<p><em>\u4efb\u4f55\u80fd\u591f\u6539\u53d8\u4f60\u601d\u8003\u65b9\u5f0f\u7684\u77e5\u8bc6\uff0c\u90fd\u503c\u5f97\u5b66\u4e60</em></p>\n\n<p>Haskell \u5f53\u7136\u5c5e\u4e8e\u4e0a\u8ff0\u77e5\u8bc6\u4e4b\u4e00\u3002</p>\n\n<p>\u76ee\u524d\u6211\u6b63\u5728\u6309\u7167<a target=\"_blank\" rel=\"nofollow\" href=\"https://github.com/bitemyapp/learnhaskell\">LearnHaskell</a>\u7684\u8def\u5f84\u6765\u8fdb\u884c\u5b66\u4e60\uff0c\u89c9\u5f97\u5f88\u6709\u610f\u601d~</p>\n\n<p>\u8fd9\u672c\u4e66\u552e\u4ef7 59 \u5200\uff0c\u4e00\u4e2a\u4eba\u4e70\u8fd8\u662f\u6709\u70b9\u7565\u8d35\uff0c\u6709\u4e24\u4e09\u4e2a\u5c0f\u4f19\u4f34\u4e00\u8d77\u4e70\u5c31\u6700\u597d\u4e86~</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/myid", 
        "name": "myid", 
        "avatar": "https://cdn.v2ex.com/gravatar/5dc6040ad2cf58c2e36c58d492684ed6?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/259708", 
      "date_modified": "2016-02-28T14:54:12+00:00", 
      "content_html": "", 
      "date_published": "2016-02-28T13:12:46+00:00", 
      "title": "\u4e3a\u4ec0\u4e48\u5b66\u4e86 Haskell\uff0c\u679c\u7136\u5370\u8bc1\u4e86 V2EX \u4e0a\u7684 \u667a\u8005\uff08\u5fd8\u8bb0\u7f51\u540d\uff09\u7684\u65ad\u8bba\uff0c\u201c\u5b66\u4e86 Haskell\uff0c\u56de\u4e0d\u53bb\u4e86\u201c, \u56de\u4e0d\u53bb\u4e86\u8036\u3002", 
      "id": "https://www.v2ex.com/t/259708"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/myid", 
        "name": "myid", 
        "avatar": "https://cdn.v2ex.com/gravatar/5dc6040ad2cf58c2e36c58d492684ed6?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/259703", 
      "title": "\u8d34 Haskell \u4ee3\u7801\uff0c\u89e3\u4e00\u9053\u5c0f\u9898\u3002\u7ed9\u4efb\u610f\u5b57\u7b26\u4e32\uff0c\u627e\u51fa\u957f\u5ea6\u6700\u957f\u7684\u6570\u5b57\u4e32\u3002\u8bf7\u968f\u610f\u6254\u7816\u5934\u3002\r\nhttp://www.v2ex.com/t/259360#reply18", 
      "id": "https://www.v2ex.com/t/259703", 
      "date_published": "2016-02-28T12:59:18+00:00", 
      "content_html": "import Data.Char (isDigit)\r<br />\r<br />longestInts :: String -&gt; [Int]\r<br />longestInts xs = map (digitsToInt) $ longestLength $ extractDigits xs\r<br />\r<br />extractDigits :: String -&gt; [String]\r<br />extractDigits [] = []\r<br />extractDigits xs\r<br />| null $ dropWhile (not.isDigit) xs = []\r<br />| otherwise = (takeWhile (isDigit) $ dropWhile (not.isDigit) xs) : (extractDigits $ dropWhile (isDigit) $ dropWhile (not.isDigit) xs)\r<br />\r<br />longestLength :: [[a]] -&gt; [[a]]\r<br />longestLength xs = filter (\\x -&gt; length x == (maximum $ map (length) xs)) xs"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/sadhen", 
        "name": "sadhen", 
        "avatar": "https://cdn.v2ex.com/gravatar/3d6f03810b4c31313e99eab72f787b3f?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/256665", 
      "title": "\u4e00\u4e2a\u5f88\u9177\u7684 Hakyll \u9759\u6001\u535a\u5ba2\u4f8b\u5b50", 
      "id": "https://www.v2ex.com/t/256665", 
      "date_published": "2016-02-15T09:56:59+00:00", 
      "content_html": "\u89c1\uff1a <a target=\"_blank\" href=\"https://xinitrc.de\" rel=\"nofollow\">https://xinitrc.de</a> \uff08\u4ee3\u7801\uff1a <a target=\"_blank\" href=\"https://github.com/xinitrc/xinitrc.de\" rel=\"nofollow\">https://github.com/xinitrc/xinitrc.de</a> \uff09\r<br />\u8fd9\u662f\u6211\u7684\u4e00\u4e2a fork \uff1a <a target=\"_blank\" href=\"http://sadhen.com\" rel=\"nofollow\">http://sadhen.com</a> \uff08\u4ee3\u7801\uff1a <a target=\"_blank\" href=\"https://github.com/sadhen/sadhen.com\" rel=\"nofollow\">https://github.com/sadhen/sadhen.com</a> \uff09\r<br />\r<br />\u652f\u6301 Tikz \u548c\u6570\u5b66\u516c\u5f0f\uff0c\u5982 <a target=\"_blank\" href=\"https://xinitrc.de/blog/2014/02/15/Magic-tricks.html\" rel=\"nofollow\">https://xinitrc.de/blog/2014/02/15/Magic-tricks.html</a>"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/scarlex", 
        "name": "scarlex", 
        "avatar": "https://cdn.v2ex.com/avatar/1a55/1b73/33193_large.png?m=1384587216"
      }, 
      "url": "https://www.v2ex.com/t/256071", 
      "title": "\u5b66\u4e60 Haskell \u8fc7\u7a0b\u4e2d\uff0c\u5199\u4e86\u4e00\u7bc7\u5bf9 Functor \u7684\u603b\u7ed3", 
      "id": "https://www.v2ex.com/t/256071", 
      "date_published": "2016-02-11T04:04:46+00:00", 
      "content_html": "<a target=\"_blank\" href=\"http://scarletsky.github.io/2016/02/09/what-is-functor-in-haskell/\" rel=\"nofollow\">http://scarletsky.github.io/2016/02/09/what-is-functor-in-haskell/</a>\r<br />\r<br />\u6b22\u8fce\u5404\u4f4d\u6307\u6559\u3002"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/irainy", 
        "name": "irainy", 
        "avatar": "https://cdn.v2ex.com/avatar/b587/6211/65933_large.png?m=1768983532"
      }, 
      "url": "https://www.v2ex.com/t/235448", 
      "date_modified": "2015-11-11T12:47:22+00:00", 
      "content_html": "<p><a target=\"_blank\" rel=\"nofollow\" href=\"http://haskelldata.com/\"><img src=\"http://haskelldata.com/images/book.jpg\" alt=\"book face\"></a></p>\n\n<p>\u4e66\u4e2d\u4ee3\u7801\uff1a<a target=\"_blank\" rel=\"nofollow\" href=\"https://github.com/BinRoot/Haskell-Data-Analysis-Cookbook\">Github</a></p>\n\n<p>\u540c\u65f6\u8fd8\u6316\u5230\u4f5c\u8005\u7684\u4e00\u4e2a Haskell \u8bfe\u7a0b\u4e5f\u5f88\u4e0d\u9519\uff1a<a target=\"_blank\" rel=\"nofollow\" href=\"http://shuklan.com/haskell/index.html\">Introduction to Haskell, CS 1501 Lecture slides</a></p>\n", 
      "date_published": "2015-11-11T12:46:33+00:00", 
      "title": "\u53d1\u73b0\u4e00\u672c\u597d\u4e66\u300aHaskell Data Analysis Cookbook\u300b", 
      "id": "https://www.v2ex.com/t/235448"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/irainy", 
        "name": "irainy", 
        "avatar": "https://cdn.v2ex.com/avatar/b587/6211/65933_large.png?m=1768983532"
      }, 
      "url": "https://www.v2ex.com/t/234446", 
      "title": "How to Write a Spelling Corrector - Haskell", 
      "id": "https://www.v2ex.com/t/234446", 
      "date_published": "2015-11-07T10:49:01+00:00", 
      "content_html": "\u57fa\u4e8e\u8d1d\u53f6\u65af\u6a21\u578b\u7684\u62fc\u5199\u7ea0\u6b63 - Haskell \u7248\u672c\uff0c\u7f51\u7ad9\u4e0a\u7684\u94fe\u63a5 404 \u4e86\uff0c\u91cd\u5199\u4e86\u4e00\u4e2a\u3002\r<br />\r<br /><div><a target=\"_blank\" href=\"https://gist.github.com/rainyear/94b5d9a865601f075719\" target=\"_blank\">https://gist.github.com/rainyear/94b5d9a865601f075719</a> <button onclick=\"lazyGist(this)\">&nbsp;\u663e\u793a Gist \u4ee3\u7801&nbsp;</button></div>"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/irainy", 
        "name": "irainy", 
        "avatar": "https://cdn.v2ex.com/avatar/b587/6211/65933_large.png?m=1768983532"
      }, 
      "url": "https://www.v2ex.com/t/218840", 
      "title": "Haskell \u5165\u95e8\u5b66\u4e60\u8d44\u6599\u6574\u7406", 
      "id": "https://www.v2ex.com/t/218840", 
      "date_published": "2015-09-07T05:34:44+00:00", 
      "content_html": "<div class=\"highlight\"><pre><span class=\"c1\">-- \u8fd9\u91cc\u597d\u51b7\u6e05\u2026\u2026</span>\n</pre></div>\n\n<h3>Haskell \u5165\u95e8\u5b66\u4e60\u8d44\u6599\u6574\u7406</h3>\n\n<p><strong>Books</strong></p>\n\n<ol>\n<li>\u300a Learn You a Haskell for Great Good!\u300b <a target=\"_blank\" rel=\"nofollow\" href=\"http://learnyouahaskell.com/chapters\">English</a> | <a target=\"_blank\" rel=\"nofollow\" href=\"http://learnyouahaskell-zh-tw.csie.org/\">\u4e2d\u6587</a></li>\n<li>\u300a Real World Haskell \u300b <a target=\"_blank\" rel=\"nofollow\" href=\"http://book.realworldhaskell.org/\">English</a> | <a target=\"_blank\" rel=\"nofollow\" href=\"http://cnhaskell.com/\">\u4e2d\u6587</a></li>\n<li>\u300a Parallel and Concurrent Programming in Haskell \u300b <a target=\"_blank\" rel=\"nofollow\" href=\"http://chimera.labs.oreilly.com/books/1230000000929/index.html\">English - Online</a></li>\n</ol>\n\n<hr>\n\n<p><strong>Resources</strong></p>\n\n<ol>\n<li><a target=\"_blank\" rel=\"nofollow\" href=\"http://a.haskellcn.org/study\">Haskell \u5b66\u4e60\u8d44\u6e90</a></li>\n<li><a target=\"_blank\" rel=\"nofollow\" href=\"https://github.com/krispo/awesome-haskell\">Awesome Haskell</a></li>\n</ol>\n\n<hr>\n\n<p><strong>Blog post</strong></p>\n\n<ol>\n<li><a target=\"_blank\" rel=\"nofollow\" href=\"http://blog.jobbole.com/17341/\">\u4e3a\u4ec0\u4e48\u6211\u4eec\u8981\u5b66\u4e60 Haskell \u8fd9\u6837\u7684\u7f16\u7a0b\u8bed\u8a00</a></li>\n<li><a target=\"_blank\" rel=\"nofollow\" href=\"https://howistart.org/posts/haskell/1\">How I Start Haskell</a></li>\n<li><a target=\"_blank\" rel=\"nofollow\" href=\"http://bob.ippoli.to/archives/2013/01/11/getting-started-with-haskell/#install-ghc\">Getting Started with Haskell</a></li>\n</ol>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Livid", 
        "name": "Livid", 
        "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1780186375"
      }, 
      "url": "https://www.v2ex.com/t/215961", 
      "title": "Haskell for Mac", 
      "id": "https://www.v2ex.com/t/215961", 
      "date_published": "2015-08-25T13:43:19+00:00", 
      "content_html": "\u5f88\u5f3a\u5927\u7684 OS X \u4e0a\u7684 Haskell \u5f00\u53d1\u73af\u5883\u3002\r<br />\r<br /><a target=\"_blank\" href=\"http://haskellformac.com/\" rel=\"nofollow\">http://haskellformac.com/</a>"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Livid", 
        "name": "Livid", 
        "avatar": "https://cdn.v2ex.com/avatar/c4ca/4238/1_large.png?m=1780186375"
      }, 
      "url": "https://www.v2ex.com/t/200914", 
      "title": "Yesod - Haskell \u7684 Web \u5f00\u53d1\u6846\u67b6", 
      "id": "https://www.v2ex.com/t/200914", 
      "date_published": "2015-06-24T13:15:40+00:00", 
      "content_html": "<a target=\"_blank\" href=\"http://yannesposito.com/Scratch/en/blog/Yesod-tutorial-for-newbies/\" rel=\"nofollow\">http://yannesposito.com/Scratch/en/blog/Yesod-tutorial-for-newbies/</a>"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/arbipher", 
        "name": "arbipher", 
        "avatar": "https://cdn.v2ex.com/avatar/3f61/6bcb/40926_large.png?m=1406788687"
      }, 
      "url": "https://www.v2ex.com/t/149686", 
      "title": "Haskell \u600e\u4e48\u5728\u53ea\u6709\u4e00\u4e2a\u5143\u7d20\u7684\u5217\u8868\u4e0a\u5b9a\u4e49\u51fd\u6570", 
      "id": "https://www.v2ex.com/t/149686", 
      "date_published": "2014-11-27T06:26:01+00:00", 
      "content_html": "\u6211\u60f3\u9488\u5bf9\u51fd\u6570\u53c2\u6570\u4e3a\u7a7a\u5217\u8868\u3001\u4e00\u4e2a\u5143\u7d20\u3001\u66f4\u591a\u5143\u7d20\u5206\u522b\u5b9a\u4e49<br /><br />foo (x:[]) = 0<br />foo (x:xs) | null xs = 0<br />\u8fd9\u4e24\u6b21\u80fd\u901a\u8fc7\u7f16\u8bd1\uff0c\u4f46\u662f\u4e0d\u80fd\u4e00\u8fd0\u884c\u5c31\u62a5\u9519\u3002<br /><br />\u53d1\u73b0\u53ea\u6709<br />foo xs | length xs == 1 = 0<br />\u8fd9\u4e48\u5b9a\u4e49\u624dwork\uff0c\u611f\u89c9\u5f88\u4e11\u3002\u3002\u3002"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/wcp1231", 
        "name": "wcp1231", 
        "avatar": "https://cdn.v2ex.com/avatar/ae91/9153/35970_large.png?m=1745928685"
      }, 
      "url": "https://www.v2ex.com/t/143923", 
      "title": "\u4e00\u6bb5 Haskell \u4ee3\u7801\u6c42\u52a9\uff01", 
      "id": "https://www.v2ex.com/t/143923", 
      "date_published": "2014-11-04T09:38:41+00:00", 
      "content_html": "\u6628\u5929\u770b\u5230\u8fd9\u4e2a\u535a\u5ba2 <a target=\"_blank\" href=\"http://www.lazzaro.com.ar/#/archive/83103005589\" rel=\"nofollow\">http://www.lazzaro.com.ar/#/archive/83103005589</a> \uff0c\u524d\u4e00\u534a\u8fd8\u80fd\u770b\u61c2\uff0c\u5230\u540e\u9762\u5c31\u4e0d\u884c\u4e86\uff0c\u6211\u662f\u5c0f\u767d\u521a\u521a\u5165\u95e8 Haskell\uff0c\u8bf7\u5404\u4f4d\u5927\u5927\u4eec\u8bb2\u89e3\u4e00\u4e0b\u3002\u3002 <br /><br />let dropWhile'' predicate list= (foldr (\\x rec -&gt; if precidate x then rec.tail else id) id list) list <br /><br />\u4e0d\u660e\u767d\u7684\u5730\u65b9\u6709\u4e24\u4e2a\uff0c rec.tail \u662f\u5565\u610f\u601d\uff1f\u5e94\u8be5\u4e0d\u662f\u8fc7\u7a0b\u5f0f\u8bed\u8a00\u7684\u8c03\u7528\u5427\u3002\u3002 <br />\u53e6\u4e00\u4e2a\u662f (foldr (\\x rec -&gt; if precidate x then rec.tail else id) id list) \u8fd9\u6bb5 foldr \u4e0d\u4f1a\u662f\u8fd4\u56de\u4e00\u4e2a\u5305\u542b\u51fd\u6570\u7684 list \u7136\u540e\u4f5c\u7528\u5230\u6700\u540e\u7684\u90a3\u4e2a list \u4e0a\u5427\uff1f\u6709\u8fd9\u79cd\u8bed\u6cd5\uff1f <br /><br />\u8c22\u8c22\u7ed9\u4f4d\u5927\u5927\u4e86\uff01"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/sectic", 
        "name": "sectic", 
        "avatar": "https://cdn.v2ex.com/avatar/2a51/9dc3/22037_large.png?m=1472082226"
      }, 
      "url": "https://www.v2ex.com/t/98680", 
      "title": "Haskell \u5f88\u9002\u5408\u505a\u7f16\u8bd1\u5668\u524d\u7aef", 
      "id": "https://www.v2ex.com/t/98680", 
      "date_published": "2014-01-29T23:57:57+00:00", 
      "content_html": ""
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Kymair", 
        "name": "Kymair", 
        "avatar": "https://cdn.v2ex.com/avatar/0f28/b5d4/141_large.png?m=1651835575"
      }, 
      "url": "https://www.v2ex.com/t/57187", 
      "title": "Introduction to Haskell", 
      "id": "https://www.v2ex.com/t/57187", 
      "date_published": "2013-01-10T07:28:59+00:00", 
      "content_html": "University of Virginia  CS 1501 Lectures  Spring 2013<br /><a href=\"http://shuklan.com/haskell/\" rel=\"nofollow\">http://shuklan.com/haskell/</a><br /><br />\u5df2\u7ecf\u653e\u51fa\u4e86\u7b2c\u4e00\u8bfe<br />\u8fd9\u4e2apresentation\u7684\u6837\u5f0f\u771f\u4e0d\u9519 XD =&gt; <a href=\"http://shuklan.com/haskell/lec01.html#/\" rel=\"nofollow\">http://shuklan.com/haskell/lec01.html#/</a>"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/limu", 
        "name": "limu", 
        "avatar": "https://cdn.v2ex.com/gravatar/a4c4dc26a8093d84ada69267e9a9d5bf?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/45817", 
      "title": "\u5728 Github \u4e0a\u5f04\u4e86\u4e00\u4e2a blog, \u5199\u5199 Haskell", 
      "id": "https://www.v2ex.com/t/45817", 
      "date_published": "2012-08-22T15:59:00+00:00", 
      "content_html": "\u5730\u5740\u5728: <a target=\"_blank\" href=\"http://blog.pmonad.com/\" rel=\"nofollow\">http://blog.pmonad.com/</a><br />\u4e00\u4e2a\u4eba\u5199\u633a\u65e0\u804a\u7684, \u6b22\u8fce\u5927\u5bb6\u4f4d\u4e34\u53c2\u89c2,\u4e0d\u541d\u8d50\u6559\u54c7."
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/infinte", 
        "name": "infinte", 
        "avatar": "https://cdn.v2ex.com/avatar/a3fb/4fbf/1165_large.png?m=1750180424"
      }, 
      "url": "https://www.v2ex.com/t/39095", 
      "title": "\u5173\u4e8e\u4e00\u4e9b\u540d\u8bcd\u7ffb\u8bd1\u7684\u786e\u5b9a", 
      "id": "https://www.v2ex.com/t/39095", 
      "date_published": "2012-06-11T08:21:09+00:00", 
      "content_html": "Haskell \u4e00\u4e9b\u540d\u8bcd\u548c\u5176\u4ed6\u8bed\u8a00\u542b\u4e49\u8fe5\u5f02\uff0c\u6700\u8fd1\u6253\u7b97\u5728\u6691\u5047\u7ffb\u8bd1\u548c\u6821\u5bf9 LYAH\uff0c\u4e0b\u9762\u662f\u4e00\u4e9b\u4e2a\u4eba\u60f3\u6cd5\u3002<br /><br />Type Class \u7ffb\u8bd1\u4f5c\u300c\u7c7b\u578b\u7c7b\u300d\u611f\u89c9\u4e0d\u662f\u5f88\u597d\uff0c\u6211\u6253\u7b97\u7ffb\u8bd1\u6210\u300c\u7c7b\u7efc\u300d\uff0c\u548c\u300c\u7c7b\u578b\u300d\u76f8\u5bf9\u3002\uff08\u662f\u4ece\u7edf\u8ba1\u529b\u5b66\u91cc\u300c\u7cfb\u7efc\u300d\u60f3\u5230\u7684\u2026\u2026\uff09<br />Type \u4ecd\u7136\u4f5c\u7c7b\u578b\u3002<br />Functor \u4f5c\u300c\u51fd\u5b50\u300d<br />Applicative \u6bd4\u8f83\u96be\u7ffb\u8bd1\uff0c\u5148\u4fdd\u7559<br />Monoid \u4f5c\u300c\u5e7a\u534a\u7fa4\u300d<br /><br />\u5404\u4f4d\u63d0\u4e9b\u610f\u89c1\uff1f"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/infinte", 
        "name": "infinte", 
        "avatar": "https://cdn.v2ex.com/avatar/a3fb/4fbf/1165_large.png?m=1750180424"
      }, 
      "url": "https://www.v2ex.com/t/32768", 
      "date_modified": "2012-04-22T14:17:43+00:00", 
      "content_html": "\u6211\u8bf4\u7684\u5c31\u662f\u300aHaskell \u8da3\u5b66\u6307\u5357\u300b\uff0c\u73b0\u5728\u6240\u6709\u7684\u6c49\u8bed\u7ffb\u8bd1\u90fd\u4e0d\u5b8c\u6574\uff0c\u6709\u4eba\u613f\u610f\u8865\u5b8c\u5417\uff1f", 
      "date_published": "2012-04-20T13:54:31+00:00", 
      "title": "\u6709\u6ca1\u6709\u4eba\u6709\u5174\u8da3\u8865\u5b8c \u300a\u8da3\u5b66\u6307\u5357\u300b \u7684\u6c49\u8bed\u7ffb\u8bd1\uff1f", 
      "id": "https://www.v2ex.com/t/32768"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/infinte", 
        "name": "infinte", 
        "avatar": "https://cdn.v2ex.com/avatar/a3fb/4fbf/1165_large.png?m=1750180424"
      }, 
      "url": "https://www.v2ex.com/t/32739", 
      "date_modified": "2012-04-22T17:52:18+00:00", 
      "content_html": "\u4ee5\u4e0a\u3002\r\n<br />\r\n<br />\u4e0b\u7f16\u8bd1\u5668\u53bb <a href=\"http://haskell.org\" target=\"_blank\">haskell.org</a>\r\n<br />\u770b\u4e66\u770b RWH\r\n<br />\u987a\u4fbf\u5b66\u6570\u5b66\u2026\u2026", 
      "date_published": "2012-04-20T07:36:11+00:00", 
      "title": "\u8d3a haskell \u5f00\u533a\uff0c\u8fd9\u662f\u4ea4\u6d41\u5904\u3002", 
      "id": "https://www.v2ex.com/t/32739"
    }
  ]
}