22
\$\begingroup\$

In accordance with our meta agreement to have a Language of the Month, and since the list of nominations has a single highest-voted entry as March nears its end, I am pleased to announce the next featured language! Throughout April 2018, our Language of the Month, nominated by Destructible Lemon, will be:

Brain-Flak

What's a Language of the Month?

See the meta posts linked above. In short, during April, those who wish to participate should learn (at least the basics of) Brain-Flak, use it to solve challenges, and discuss it in the Brain-Flak chat room, The Third Stack. Participation is completely optional, but is anticipated to be fun!

Information about Brain-Flak

Brain-Flak is a minimalist stack-based turing tarpit. It uses only the brace characters ()[]{}<>, which must be balanced. Data consists of integers stored on a pair of stacks. However, despite its humble feature set, there is a surprising depth and elegance to the language.

  • Brain-Flak is entirely composed of atoms, which can either be niladic (taking 0 arguments) or monadic (taking exactly one argument). A nilad is a pair of brackets with nothing between them, i.e. one of "()", "{}", "[]", or "<>". A monad is a pair of brackets with any number of other atoms between them.

    Due to the nature of using only brackets for code, these atoms are highly nestable. One of the most fun pieces of using brain-flak is learning how to use these atoms efficiently for both their functionality and returned value.

  • Even though it was designed as a turing tarpit with only 8 commands, there are certain tasks that can done very tersely in brain-flak. Most notably, operations with polygonal numbers and summations.

Documentation

The readme on the GitHub repository contains a good summary of the language. Further help can be found at:

Interpreter

The simplest way to run Brain-Flak is through Try It Online! There are two interpreters available on TIO: the original Ruby interpreter and an implementation in Haskell.

You can also download implementations in Ruby, C, Haskell, and Prolog.


(([((((()()())()())({}){}))]((((([]([][]([[]]([[]()()]([][]()([]()({}{}{})({})({})))))))[[]()])<([][][][])>[][])()[[]])))[[][]]())

Thanks to Jo King, user56656, and Nitrodon for golfing help :D

\$\endgroup\$
7
  • 6
    \$\begingroup\$ I would like to point out that Brain-Flak will also turn 2 years old this April! Last year we threw it a bit of a party with some themed challenges, and we are planning on doing it again. Convenient that Brain-Flak is also the language of the month! \$\endgroup\$
    – Wheat Wizard Mod
    Commented Apr 1, 2018 at 4:55
  • 1
    \$\begingroup\$ This feels like a joke :P \$\endgroup\$
    – user63187
    Commented Apr 1, 2018 at 18:34
  • 2
    \$\begingroup\$ 142 bytes \$\endgroup\$
    – Jo King Mod
    Commented Apr 1, 2018 at 22:42
  • 3
    \$\begingroup\$ @JoKing 140 bytes \$\endgroup\$
    – Wheat Wizard Mod
    Commented Apr 2, 2018 at 15:33
  • 3
    \$\begingroup\$ @Christopher I was very, very close to posting "Language of the Month: Malbolge" as an April Fools' joke. But DJ was so excited about Brain-Flak being featured, I decided that would be kinda mean of me. \$\endgroup\$
    – DLosc
    Commented Apr 2, 2018 at 18:49
  • 6
    \$\begingroup\$ You know I can't resist. \$\endgroup\$
    – Nitrodon
    Commented Apr 2, 2018 at 20:15
  • \$\begingroup\$ @DLosc hahaha that is great \$\endgroup\$
    – user63187
    Commented Apr 2, 2018 at 22:18

1 Answer 1

11
\$\begingroup\$

List of all Brain-Flak solutions posted in April


List of all Brain-Flak tips posted in April

  • Check your negatives by Jo King

  • add entries in the form:

    [<tip title>](https://codegolf.stackexchange.com/a/<answer-ID>) by [username](https://codegolf.stackexchange.com/users/<user-ID>)
    

List of Brain-Flak-related challenges posted in April

  • Expand Compressed Brain-Flak by DJMcMayhem

  • add entries in the form:

    [<challenge title>](https://codegolf.stackexchange.com/q/<question-ID>) by [username](https://codegolf.stackexchange.com/users/<user-ID>)
    
\$\endgroup\$
0

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .