and also having like RLE or other compression things beforehand would make it more compressed at which point there isn't really a universal "best" anymore
but enumerating and encoding the index would be a good start
@AviFS I think I'm a bit late, but I made a BF interpreter (based on TIO's) with debug (with #). It prints (to stdout) data cells up to the farthest reached by the pointer (instead of an arbitrary limit) and indicates pointer positions with *, and prints the number of the current cell of the pointer. <https://tinyurl.com/2p3csbze>
Golunar/Unary is a way to encode all valid Brainfuck programs, but it is not an enumeration, since most natural numbers do not correspond to a valid program.
For the purpose of this challenge, assume a doubly infinite tape and no comments, i.e., a Brainfuck program is valid if and only if it cons...
@astroide Thanks, that's super useful! I'll look at it more when I'm back
Also, I imagine it's not necessary to ask, but please don't post the BF answer! I will soon. I just wanted to share it since I just finished it, and spent a ridiculous amount of time
also yeah, if you post your solution somewhere and are working on it and someone just steals it and posts it, you can just flag it for mod attention and it'll probably get a shit ton of downvotes, and I'll definitely have grounds to remove it (or more) if the downvotes don't make the poster remove it themselves
i remember there was one about images and colors that was plagiarised with the only thing being edited that the nature pics got changed into some indian movie :p
also they didn't even bother to copy the source formatting
they just copied the body from the page and posted it, idk what they were expecting tbh. probably like you said, "the internet is like reddit so i can just repost stuff right"
@Bubbler cross-posting is pretty much a link to an original, but reposting is using the same content (and linking to the original in comments if you're lucky)
@lyxal on its own, i think iota combinator is turing complete, but idk if you're talking about in general, in theory, for golfing, things to implement for vyxal transformers, etc
it looks like it from what i can tell but idk if it's properly postfix or stack based or if i just am reading it wrong from the like once or twice i've looked more closely at a factor submission on cg
honestly jelly tacit allowing walking through a chain is relatively small monad-like blocks on the value makes it quite easy to interpret once you learn the chaining rules
(which isn't necessarily easy :p)
@wasif jelly has up to 2 arguments (none, left, or left-right) and an 'accumulator'-type value that changes as you walk down the chain
you don't need variables because functions refer to the value or argument(s) based on their composition using the chaining rules
yeah, lol. like some parts of "golflang bad" are kinda true - anything that can be a monad chain is boring in both jelly where it's just 1 | 02 | 20 chain and stack-based languages where it's just pop-push pop-push chains - I still think golfing langauges are fun and interesting and have a positive impact on the types of challenges and submissions and thought processes, but it does make easier challenges extremely trivial/boring, and having every challenge be complex/hard isn't good either lol
My main reason for not adding first class functions to Ash was that I wanted to avoid recursion, but it turns out modern browsers have high enough recursion limits it doesn't matter
@hyper-neutrino it annoys me how hyper specific it can get, but otherwise, I haven't seen it in action enough to make a judgement about how golfy it is
@cairdcoinheringaahing that's fair. also yeah - i like that jelly's builtins all seem pretty general and it's more about intelligent combinations of them (except when it's unintelligent combinations and you just spam capital letters in TIO)
although i am also adding fizzbuzz constant for the memes cuz i have 254 slots for random constants
The main reason I want to do stack based instead of prefix is the simplicity. Anyone who looks at Ash's parser will tell you I should not be allowed to write anything tacit.
I think it's crazy that modern golfing langs have 4 to 10 years of history to make builtin choices from (mainly Jelly and 05AB1E, also Pyth, CJam, Golfscript, Husk, J, APL, etc.) and yet nothing has been a serious challenge to the "kings" since they began
@cairdcoinheringaahing yeah - even my current lang, a lot of the things i'm implementing right now are just taking jelly atoms and overloading a couple of things for more specific purposes. it's hard to compete with the legend himself at designing a better language :P
Like, Jelly's biggest weakness IMO is how specific builtins are assigned, making important things 2 bytes or more. If it was redesigned now with the history, it'd be much much better
@RedwolfPrograms yeah, exactly - IMO if you have a set of specific 1-byte built-ins that can all be represented by another one-byte built-in plus an argument, it's a) a waste and b) too specific
there were also like one or two full-unicode languages that existed solely to convince people to please score on bytes instead of characters, which was not actually completely standard for some reason
Because it isn't someone turning around and saying "Jelly reads € as one byte instead of 2". It's saying that "Jelly interprets the 0xEA byte in a file to mean 'map' instead of some random byte. In order to make that more usable, if you include the € character, Jelly will understand that you mean 0xEA instead"
Yes, I know that isn't the correct hex value in any code page
isn't jelly's approach more that it just has a flag to read unicode instead of the sbcs, so you can use a unicode representation of a valid sbcs-encoded program
It also fits very well with our standard size counting measure: bytes in the file(s). I can provide a file with bytes 1a 34 f2 07 into the jelly interpreter (no u flag, just as is), and it can interpret that
but yeah, the point is so long as the interpreter can take a sequence of bytes it's valid by byte-count - a code page just exists to allow you to map a more representative character set to those 256 bytes
It also means that basically all the "How to count bytes in X" posts are all answerable by "Provide a file and an interpreter than understands that file. How many bytes is the file? That is your score"
And answers why we don't have "fractional" byte counts: show me a file with a fractional byte length
@cairdcoinheringaahing Recently there was an answer that claimed to have fractional bytes because it was a function that occupied a certain amount of bits, not a full program. How do you think about it?
@Bubbler Can you provide for me a file which has a fractional number of bytes? Because even a stand alone function can be saved (but not executed) into a file, right?
b) there's both bytes and chars scoring, and adding codepage based languages would mean that other (paractical) languages can also choose their codepage
If only there was a real life situation in the sport of golf that we could look to for examples of how to separate things specifically designed to do well and things that like to compete for fun...
Because the last time I played a round of golf, I noticed a clear lack of Tiger Woods' to compete against
c) holes require arbitrary numbers of command line args and ability to read from STDIN, and pip has fully working pre-included functionality(and an active dev)
i did introduce an idea of having golflangs not having points scoring
a reasonable way to determine scoring is "a file that you can save that you can then either run as a full program or concatenate with other files before/after to run" - not sure if that makes sense, but with tio (+ everything else now)'s header-code-footer structure that could make sense
@Bubbler Languages are defined here by implementations. If there's no implementation which agrees with the behaviour you're describing, then either make one, or change your scoring to fit the behaviour
Also, does it really matter if your code scores half a byte more than what you believe it should be? It's literally less than a single byte, do we have to be so anal about stuff?
I get the need for having clear and fair rules, but if you're arguing about whether something should be 2.666 bytes or 3, maybe find something better to do?