this post was submitted on 15 Sep 2023
8 points (100.0% liked)

Concatenative Programming

152 readers
1 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
 

Hello everyone,

I’m excited to introduce the alpha release of kcats, a fresh take on stack-based programming languages, inspired by the language Joy, designed with simplicity, learnability, and functionality in mind.

Our aim with kcats is to make it easier for anyone to write short programs for personal automation tasks. We believe that existing languages require learning too many specialized functions and concepts. Kcats addresses these issues by offering a streamlined alternative. Originally conceived as a scripting language for a forthcoming messaging protocol, it’s useful for general programming as well.

Key features of kcats:

Simplicity: kcats emphasizes fewer, general-purpose tools instead of a complex array of specialized ones. Its syntax uses words and bracket quotation marks [ and ], and no other symbols. It uses a few simple programming concepts including stacks, lists, functions, and pipes.

Introspective: The documentation, examples, and even the entire state of a running program, are data that can be queried and processed with the language itself. Kcats is its own debugger.

Powerful and Versatile: Despite its simplicity, kcats is designed to be a powerful tool capable of handling a wide range of programming tasks. The tools programmers use in other languages are there, and built from simple primitives - closures, error handling, metaprogramming, multithreading, channels, generators, i/o, and serialization.

A Focus on Tooling: kcats intends to make tool development, including IDEs and debuggers, as easy as possible.

As this is the alpha release, we eagerly welcome all feedback, contributions, and constructive criticisms from the community. We’re especially interested in improving the documentation and learning experience.

Join us in exploring this new language and contribute to making programming more accessible to everyone. Your feedback is essential to making it intuitive and easy to use!

Please check out our docs and alpha release here: https://github.com/skyrod-vactai/kcats

Happy coding!

Best, Skyrod

top 2 comments
sorted by: hot top controversial new old
[–] Andy 2 points 1 year ago (1 children)

Awesome!

If you post any kcats solutions to the challenges community (even if the submission windows are officially closed), please link them back here!

[–] skyrod2 1 points 1 year ago

Ok I'll take a look at it and hopefully post some solutions!