this post was submitted on 25 Jan 2024
6 points (100.0% liked)

Concatenative Programming

143 readers
2 users here now

Hello!

This space is for sharing news, experiences, announcements, questions, showcases, etc. regarding concatenative programming concepts and tools.

We'll also take any programming described as:


From Wikipedia:

A concatenative programming language is a point-free computer programming language in which all expressions denote functions, and the juxtaposition of expressions denotes function composition. Concatenative programming replaces function application, which is common in other programming styles, with function composition as the default way to build subroutines.

For example, a sequence of operations in an applicative language like the following:

y = foo(x)
z = bar(y)
w = baz(z)

...is written in a concatenative language as a sequence of functions:

x foo bar baz


Active Languages

Let me know if I've got any of these misplaced!

Primarily Concatenative

Concatenative-ish, Chain-y, Pipe-y, Uniform Function Call Syntax, etc.


Cheat Sheets & Tutorials

Discord

IRC

Wikis

Wikipedia Topics

Subreddits

GitHub Topics

Blogs

Practice

founded 1 year ago
MODERATORS
 

I think pipeline-oriented tooling is relevant enough for this community (is this thing on?).

A PRQL query is a linear pipeline of transformations

It compiles to plain SQL, but queries generally start with a table.

Each line of the query is a transformation of the previous line’s result. This makes it easy to read, and simple to write.

PRQL consists of a curated set of orthogonal transformations, which are combined together to form a pipeline. That makes it easy to compose and extend queries. The language also benefits from modern features, such syntax for dates, ranges and f-strings as well as functions, type checking and better null handling.

link

top 1 comments
sorted by: hot top controversial new old
[–] [email protected] 3 points 7 months ago

Huh, this is pretty cool.
Might have to play around with it at some point. I can see a few use cases for it