Skip to content
0:00 / 0:00

#point-free#tacitprogramming#eta-reduction

"Point-Free or Die: Tacit Programming in Haskell and Beyond" by Amar Shah

Strange Loop Conference

88K subscribers • 107 videos on Hallway • Conference channel

YouTube
  • Recommended by 2 people: 1 in engineering communities and 1 curated list.
  • Presented by Amar Shah
  • An opinion. It argues one side of a question engineers disagree on.

Intermediate. Assumes working knowledge.

33K views10 years ago2 recommendations

Programming languagesSoftware designHaskellFunctional programming

Amar Shah explores tacit programming, explaining when point-free style is beneficial and when it makes code harder to understand.

Tacit programming, or programming in the “point-free” style, allows you to define a function without reference to one or more of its arguments. Thanks to automatic currying, point-free definitions can be easy to write in Haskell, OCaml, and F#. But is point-free syntax just point-less? Ostensibly, tacit definitions can calibrate your code to the appropriate level of abstraction. But which level is most appropriate? When is a point-free definition better than its “pointed” variation? And when is it spectacularly worse? Let's be explicit about tacit programming. Let's learn eta-reduction to produce it. Let's develop our intuition for its expressive power. Let's hunt for it in trusted libraries. Let's probe its origins in John Backus' function-level programming. Let's see it amplified in Joy and J, languages designed for maximum quiet. Let's speak at length, about the unspoken.

Why it's here

2 people recommend this

What people say. Recommended as a great introduction to point-free style and tacit programming.

u/gallaisin r/haskell • Recommends

"Point-Free or Die: Tacit Programming in Haskell and Beyond" by Amar Shah

programming-talkscurated list on GitHubRecommends

Under “Haskell”

Point-Free or Die: Tacit Programming in Haskell and Beyond 00:36:12 by **Amar Shah** (2016)

u/dimsuzin r/Kotlin • Mentions

On “Is it possible to write point-free functions in Kotlin?”

I don't think it is possible to do this as elegantly as in FP-inclined languages which support currying and "functions as data" paradigm. That is you can, but it will look unnatural and cumbersome in Kotlin. By the way I remembered this talk about the point-free style, you may be interested in it.