this post was submitted on 27 Jul 2024
112 points (98.3% liked)

Programming Languages

1187 readers
1 users here now

Hello!

This is the current Lemmy equivalent of https://www.reddit.com/r/ProgrammingLanguages/.

The content and rules are the same here as they are over there. Taken directly from the /r/ProgrammingLanguages overview:

This community is dedicated to the theory, design and implementation of programming languages.

Be nice to each other. Flame wars and rants are not welcomed. Please also put some effort into your post.

This isn't the right place to ask questions such as "What language should I use for X", "what language should I learn", and "what's your favorite language". Such questions should be posted in /c/learn_programming or /c/programming.

This is the right place for posts like the following:

See /r/ProgrammingLanguages for specific examples

Related online communities

founded 2 years ago
MODERATORS
 
top 3 comments
sorted by: hot top controversial new old
[โ€“] KindaABigDyl 19 points 4 months ago* (last edited 4 months ago)

In case you're interested, the language is a derivative of an esolang I made called NaBD. The idea was a Turing tarpit but for functional languages. What's the minimal I could get by with and still feel like a real language? (And no, not just lambda calculus; needed a real implementation)

I realized this sort of stripped-down functional language would make a great basis for a graphical programming language, something I've wanted to make for a while, so I set out to refine and remake it into just that.

That's why the syntax is a little bizarre, bc it mimics the flow of graphical blocks. It also is very simple. Every function has one input and one output with no first class funcs/currying. It's also statically typed.

Here's a truth-machine (doesn't work yet bc I haven't implemented some of the standard functions; it does parse and type check tho at least):

truth_mach :: Num -> Num =
    { inp -> bool,
        1 -> str -> print -> truth_mach,
        0 -> str -> print } -> if.
main :: <<Char>> -> Num = read -> parse -> truth_mach.

It will also support the C ABI via extern_c name_of_lib : name_of_function :: Type -> Type. This is not implemented yet either.

[โ€“] [email protected] 13 points 4 months ago

Yaaay! ๐Ÿฅณ

It's always really cool when something starts coming together and feeling like it's working :3 Maybe some day I'll get around to actually finishing one ๐Ÿ˜“ Does an assembly language count? ๐Ÿ˜…

[โ€“] [email protected] 11 points 4 months ago

Congrats! ๐ŸŽ‰