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
51
52
6
Reverse Vowels | Re: Factor (re.factorcode.org)
submitted 7 months ago by Andy to c/concatenative
53
6
Dragonbox | Re: Factor (re.factorcode.org)
submitted 7 months ago by Andy to c/concatenative
 
 

Hey that's me! No, not the amazing Factor dev that authored this post. No, not the contributor who jumped in and saved the day. I'm the

one of the members of the Factor Discord server

who complained about numbers! Woohoo!

54
2
Divmods | Re: Factor (re.factorcode.org)
submitted 7 months ago by Andy to c/concatenative
55
 
 
56
4
Crontab | Re: Factor (re.factorcode.org)
submitted 7 months ago by Andy to c/concatenative
 
 

Parsing!

57
58
59
 
 

I don't have the OS to play with this, but it looks fun!

From Wikipedia:

Prograph is a visual, object-oriented, dataflow, multiparadigm programming language that uses iconic symbols to represent actions to be taken on data. Commercial Prograph software development environments such as Prograph Classic and Prograph CPX were available for the Apple Macintosh and Windows platforms for many years but were eventually withdrawn from the market in the late 1990s. Support for the Prograph language on macOS has recently reappeared with the release of the Marten software development environment.

link

60
 
 

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

61
62
 
 

I'm adding it to the sidebar under practice.

I was alerted to it via this nice blog post with a solution in Factor.

I'll put up at least a few Factor solutions of my own at a tiny repo, and am happy to answer any questions or take any advice about them.

Here's another link to the challenges

63
2
submitted 8 months ago by Andy to c/concatenative
64
65
4
A Forth Vocabulary for Iteration (blog.information-superhighway.net)
submitted 9 months ago by Andy to c/concatenative
 
 
66
4
submitted 9 months ago by Andy to c/concatenative
 
 

...

Factor ... scales horribly both with respect to lines of code per word (function) and the amount of local state (number of variables). This is because local state is manipulated on a stack which you have to keep track of in your head. ...

So instead you're constantly having to come up with neat composable abstractions to fold up the state. This is the sort of thing that makes code elegant, loosely coupled and small in any language. ...

...

67
68
7
Advent of Code 2023 (programming.dev)
submitted 9 months ago by Andy to c/concatenative
 
 

It's just about time! Huzzah!

I'll collect links and resources here:

I'll probably only last the first few days, optimistically a week, but plan on submitting my solutions in Factor to the AoC community, and I'll link any of those here in the comments.

silly dino picture 1

silly dino picture 2

silly dino picture 3

silly dino picture 4

69
70
2
submitted 10 months ago by Andy to c/concatenative
71
72
3
submitted 10 months ago by Andy to c/concatenative
73
2
submitted 10 months ago by Andy to c/concatenative
74
75
2
submitted 10 months ago by Andy to c/concatenative
view more: ‹ prev next ›