TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Writing about Haskell is Hard

10 点作者 danidiaz超过 3 年前

4 条评论

unhammer超过 3 年前
&gt; Let’s say I wanted to introduce Jordan at work, as part of a drive for a Haskell web service. I’d have to explain to everybody what the hell Rank-N types are<p>If so, that&#x27;s a problem of jordan&#x27;s documentation. If it&#x27;s documented with enough practical examples of how to get things done, and it&#x27;s not buggy, no one needs to know about how it does it, or even why we have to write &quot;forall&quot; here. And I see from the article that it even uses generic so you can get instances derived for you (probably don&#x27;t even have to add the RankNTypes pragma in your own files). Even the hand-written examples of <a href="https:&#x2F;&#x2F;github.com&#x2F;AnthonySuper&#x2F;jordan&#x2F;blob&#x2F;master&#x2F;jordan&#x2F;README.md#example" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;AnthonySuper&#x2F;jordan&#x2F;blob&#x2F;master&#x2F;jordan&#x2F;RE...</a> don&#x27;t seem to require any esoteric knowledge. But it&#x27;s probably hard to write about Haskell without showing off all the fancy features that make things work under the hood :)<p>I remember following <a href="http:&#x2F;&#x2F;www.serpentine.com&#x2F;wreq&#x2F;tutorial.html" rel="nofollow">http:&#x2F;&#x2F;www.serpentine.com&#x2F;wreq&#x2F;tutorial.html</a> years ago for work while starting out with Haskell. It introduced the absolute minimal stuff needed for lens (I didn&#x27;t delve any deeper into lens than what the tutorial showed), and I was immediately productive. Now I took a quick look at the source of wreq and the first file I see has RankNTypes, GADT&#x27;s, etc. and I never knew.
josephcsible超过 3 年前
Does it matter that a blog post about an advanced Haskell topic isn&#x27;t understandable by people who don&#x27;t know basic Haskell? You wouldn&#x27;t fault a calculus textbook for being incomprehensible to someone who doesn&#x27;t know algebra. How is this any different than that?
评论 #29221332 未加载
ggm超过 3 年前
Writing about fnsrgle is hard. You want to explain the floofies but whe you spronge the blaly nobody can rebinnle the magrafan.<p>Look, it&#x27;s simple. The magrafan is the problem because speexzle but watrea 24 Avery haalso fnsrgle.<p>This is why reading about Haskell is hard. Because you need to explain fnsrgle using ordinary words, and then explain floofing, but you cannot use blintzes to explain floofing, or concepts like higher order types, or applicative, or any of a multitude of concepts which are alas given, to understand Haskell.<p>Happy rebinnle-ing
throwaway81523超过 3 年前
This is weird and confusing and the typescript stuff didn&#x27;t help. The author seems to advocate a voodoo approach to Haskell, where you copy&#x2F;paste code without understanding what it does. This is never a good idea. If you&#x27;re in a Haskell shop, rank N types aren&#x27;t that far &quot;out there&quot;, and are maybe more easily explained in GADT syntax. The GHC manual also documents them, and including a link might have been enough.[1]<p>It seems to me that there are much more serious barriers than rank N types to getting a useful production service running in Haskell. I think I can understand rank N types. I would not, at the moment at least, trust myself to deploy a Haskell service in production.<p>Jordan, on the other hand, looks pretty cool. Data.Binary had something in the same spirit using Scrap Your Boilerplate generics (iirc), but it wasn&#x27;t as flexible.<p>[1] <a href="https:&#x2F;&#x2F;downloads.haskell.org&#x2F;ghc&#x2F;latest&#x2F;docs&#x2F;html&#x2F;users_guide&#x2F;exts&#x2F;rank_polymorphism.html#extension-RankNTypes" rel="nofollow">https:&#x2F;&#x2F;downloads.haskell.org&#x2F;ghc&#x2F;latest&#x2F;docs&#x2F;html&#x2F;users_gui...</a>