TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

It might be worth learning an ML-family language

53 pointsby jodooshialmost 9 years ago

7 comments

agentultraalmost 9 years ago
You get much more than type-checking from ML-style languages.<p>It&#x27;s worth learning one of these languages well enough to understand the fundamental concepts at play. If all you can see is static type analysis and arcane signatures you haven&#x27;t dug deep enough yet.<p>The renaissance of functional programming happening in JS is the only thing that makes me happy about working in that language. Having immutable.js, ramda, ramda-lens, redux, and various monads (such as data.task and data.maybe) makes my code much more effective than using the majority of JS&#x27;s more dynamic features... and it doesn&#x27;t even have static type analysis.
muglugalmost 9 years ago
My alma mater&#x27;s introductory CS course was entirely in Standard ML, and was a great (if occasionally painful) way to learn some of the fundamentals of CS without requiring any background knowledge.
SixSigmaalmost 9 years ago
Julia is interesting in this regard (and Go I think - I used it&#x27;s ancestor: Limbo). You can start with<p><pre><code> function foo(bar) pass end function </code></pre> and then add types later when you&#x27;ve found out what was inferred<p><pre><code> function foo(bar::Int64) pass end function </code></pre> I enjoy this style, it means I can create the story as I go along without re-writing types every time
评论 #12167866 未加载
评论 #12166861 未加载
评论 #12167736 未加载
catnaroekalmost 9 years ago
&gt; people routinely seem to get confused as to whether something is a value of a type, a strategy for producing values of that type, or a function that returns a strategy for producing the type.<p>In other words, they aren&#x27;t sharp enough thinkers. It&#x27;s the same problem as conflating singleton lists or sets with their lone element, constant functions with their output value, or “any list” with “list of anything”. Dijkstra put it quite nicely:<p>&gt; About the use of language: it is impossible to sharpen a pencil with a blunt axe. It is equally vain to try to do it with ten blunt axes instead.
hacker_9almost 9 years ago
News just in: Languages with static type systems give better errors about types.
评论 #12166475 未加载
评论 #12167644 未加载
xntrkalmost 9 years ago
I like the strong mission statement &quot;it might be worth...&quot;
评论 #12167135 未加载
oztenalmost 9 years ago
I think Rust borrows enough from ML to give you the skill he is pointing at. Static types with plenty of places where type is inferred.
评论 #12166940 未加载