4 ms·
Once a year or so I find myself on those forums and I'm always astounded how many people there are that dedicate massive amounts of time and brain power to this
by IncreasePosts 10mo ago
Once a year or so I find myself on those forums and I'm always astounded how many people there are that dedicate massive amounts of time and brain power to this.
- tombert 10mo agoI think it appeals to the same itch that languages like Brainfuck scratch. There's something exceedingly interesting about how you can model complexity with something extremely simple. Brainfuck is fun because it forces you to think extremely low level, because ultimately it is basically just a raw implementation of a Turing machine. I wouldn't want to write a big program in it, but it is fun to think about how you might express a complicated algorithm with it. Similarly with CGOL, it is really interesting to see how far you can stretch really simple rules into something really complex. I've written CGOL dozens of times, it's a common project that I do to "break in" a language I've learned, since it's not completely trivial but it's simple enough to not be frustrating, and I completely understand why math/computability-theory folks find it something to dedicate brain power to.
- __del__ 10mo agofor those who think brainfuck is too pedestrian, have a browse through the esolang wiki: https://esolangs.org/wiki/Language_list https://esolangs.org/wiki/Language_list
- tombert 10mo agoI have no idea how I'd be able to pitch this to a university (or even who I could pitch it to), but I would absolutely love to teach a computability course using Brainfuck as the language, just to really show students how low-level logic can be. I would probably need to find a similar language with a different name though.
- jachee 10mo agoHow about Assembly?
- tombert 10mo agoAssembly is higher level logic than brainfuck, especially on modern chips. You have built in instructions for arithmetic and conditionals/branches and you can allocate memory and point to it. You don’t really get any of that with brainfuck. You have a theoretical tape and counters and that’s basically it.
- eru 10mo agoSKI calculus is pretty neat, too. You get no tape, no counters. (But it's not quite as bad to program in as brainfuck, because you can built more ergonomic contraptions to help you along.)
- somat 10mo agoUnlambda solves that problem. "What if we had the lambda calculus without the lambda forms?" asked no one. http://www.madore.org/~david/programs/unlambda/ http://www.madore.org/~david/programs/unlambda/
- arethuza 10mo agoSKI can, of course, be de-optimised a bit further by replacing I with SKK. You are right though that it is relatively simply to go from something that looks like a normal program languages to a pile of S and K combinators. Not the most efficient way to compute though!
- brightly-salty 10mo agoYou might find mlatu-6[0] interesting- it’s convertible to SKI calculus but concatenative (like Forth) rather than applicative. It’s actually a subset of Mlatu, a language I created for similar reasons to explore “how low can you go.” [0]: https://esolangs.org/wiki/Mlatu-6 https://esolangs.org/wiki/Mlatu-6
- optimalsolver 10mo agoStupidStackLanguage is by far my favorite: https://esolangs.org/wiki/StupidStackLanguage https://esolangs.org/wiki/StupidStackLanguage
- Izkata 10mo agoPiet is mine - the programs are 2D images: https://esolangs.org/wiki/Piet https://esolangs.org/wiki/Piet Primarily because of the note on the "calculating pi" example program: > Richard Mitton supplies this amazing program which calculates an approximation of pi... literally by dividing a circular area by the radius twice. > Naturally, a more accurate value can be obtained by using a bigger program. https://www.dangermouse.net/esoteric/piet/samples.html https://www.dangermouse.net/esoteric/piet/samples.html
- somat 10mo agoOne of my favorite calculations of pi is to pick random coordinates in a unit square and count how many of them are in a circle. it's so stupid and so clever at the same time. This was recreated from memory. I think it is close but I may have a bounding bug. import random def pi(count): inside = 0 for i in range(count): test_x = random.random() test_y = random.random() if test_x ** 2 + test_y ** 2 < 1: inside += 1 return inside / count * 4 #above is a quarter circle print(pi(2 ** 30) )
- oneeyedpigeon 10mo agoI'm not sure about a bounding bug, but there's definitely an indent error on the return line (good old Python!)
- hanemile 10mo agoWith the metatopic of this thread being obscure languages, I had some fun squeezing this into some list comprehensions (maybe someone's got an idea of how to keep track of the state within the list): ``` $ cat << EOF > pi.py state = [0, 0, 2*8, 2*12]; _ = [print(f'\rRun {state.__setitem__(0, state[0] + 1) or state[0]}/{state[3]} | Last \u03c0: {current_pi:.6f} | *Average \u03c0: {(state.__setitem__(1, state[1] + current_pi) or state[1]) / state[0]:.6f}*', end='', flush=True) for current_pi in [(4 * sum([1 for _ in range(state[2]) if __import__("random").random()*2 + __import__("random").random()*2 < 1]) / state[2]) for _ in range(state[3])]]; print() EOF $ time python3 pi.py Run 4096/4096 | Last π: 3.140625 | *Average π: 3.143051* python3 pi.py 0.41s user 0.01s system 99% cpu 0.429 total ``` Play around with the `2*8` and `2*10` values in the state, they control the amount of rounds and the range in which the random values get generated respectively.
- d_silin 10mo agoDear Lord.
- willrshansen 10mo agoI remain utterly baffled how they made a lisp compiler with malbolge
- golem14 10mo agoOh my god, that list lacks DATAFlex!
- pdpi 10mo agoI have a weird love for Brainfuck. It's a tiny, incredibly simple language that you can write an interpreter for in an hour, it's effectively a super-simple byte code that can easily be extended and used as a compilation target for simple languages. Honestly, as an educational tool, the only thing wrong with it is the name!
- eru 10mo ago> I've written CGOL dozens of times, it's a common project that I do to "break in" a language I've learned, since it's not completely trivial but it's simple enough to not be frustrating, and I completely understand why math/computability-theory folks find it something to dedicate brain power to. Writing a naive CGOL is fun and quick. But writing a _fast_ one can get arbitrarily complicated. https://en.wikipedia.org/wiki/Hashlife https://en.wikipedia.org/wiki/Hashlife is one particular example of where you can go for a faster-than-naive CGOL.
- tombert 10mo agoYeah, a million years ago I did that one as a convolutions so I could run it on the GPU when I was learning OpenCL. That was my first exposure to “optimizing” CGOL.
- bandrami 10mo agoIn the music world there are people who will build whole symphonies out of one sample, one filter, and one delay patch.
- piltdownman 10mo ago"So did Achilles lose his friend in war, and Homer did no injustice to his grief by writing about it in dactylic hexameters" - Tobias Wolff, Old School
- DesiLurker 10mo agoif you find that fascinating then you'll be blown away by something called 'Wolfarm physics project'. it basically is trying to recreate entire physics using such baseline 'graph update' rules like 'Game of Life'. So far no predictions yet but very interesting.
- chuckadams 10mo agoWolfram is kind of obsessed with cellular automata, even went and wrote a whole book about them titled "A New Kind of Science". The reception to it was a bit mixed. CA are Turing-complete, so yeah, you can compute anything with them, I'm just not sure that in itself leads to any greater Revealed Truths. Does make for some fun visualizations though.
- jacquesm 10mo agoThe question really ultimately resolves to whether the universe can be quantized at all levels or whether it is analog. If it is quantized I demand my 5 minutes with god, because I would see that as proof of all of this being a simulation. My lack of belief in such a being makes me hope that it is analog.
- deleted 10mo ago[deleted]
- gaigalas 10mo ago"It looks designed" means nothing. It could be our ignorance at play (we have a long proven track record of being ignorant about how things work).
- eru 10mo agoYes. Or it could be an optimisation algorithm like evolution. Or even just lots and lots of variation and some process selecting which one we focus our attention one. Compare the anthropic principle.
- mycall 10mo agoSame with Your World of Text [0], still going strong. [0] https://www.yourworldoftext.com/ https://www.yourworldoftext.com/