« first day (2337 days earlier)      last day (2801 days later) » 

02:02
oh maybe i done goof then
what is this monstrosity
please shrink to URL to save my eyes
thanks :P
anyway, there is jelly dennis. not as good as it probably would be if I owned photoshop
pls don't ban me
02:08
@DestructibleLemon looks more like sunburnt dennis to me :P
Also, long time no see, everyone.
@Avery Haven't seen you around in a while. Hi!
@Avery I put layers in!
@HyperNeutrino heya, how are you?
@Avery I'm alright, you?
Doing fine :)
02:10
That's good to hear :)
Just as I was asked "Who is Avery?" Coincidence?
@Adám You were? IRL or on chat?
@HyperNeutrino Here, by ZacharyT. When I mistyped "every" in my CMC.
Also, if I get my rep back after content remapping, I wonder if anyone will find it strange that my rep jumped to over 6000 from 500...
@Adám Ah, I see. Hm. Coincedence? I THINK NOT
Conspiracy Theory: Stating someone's name will summon them to TNB if they are on a computer and on the internet.
I don't think I've seriously dropped here since... january, except for one flag, I think (which I shouldn't've followed to here)
02:13
that's not much of a conspiracy theory
@Avery No wonder I haven't seen many of your posts around; I thought you were a regular PPCG user originally. :P
anyway gtg now. cy'all later! ಠ/
I really am pretty terrible at CG
also, later to you, later to me.
@HyperNeutrino Coincedence: The act of giving up small change.
6
@betseg tf2?
@Adám this is funny. please receive your allotted star
it is time for self promotion again
7
Q: Dungeon of botdom

Destructible Lemon– of crisis and martyrdom (that's the subtitle because subtitles are cool) In this king-of-the-hill challenge in python (yup; you need go no farther to know you may not submit in java), you need to create a bot that plays a game very similar to welcome to the dungeon Rules for the game, as you...

03:06
Could I get some looks at this sandbox post? thanks in advance
1
A: Sandbox for Proposed Challenges

Wheat WizardA dog on a chain I'm looking out of my attic window into my neighbor's yard. They have a dog chained to a post in the center of the yard. The dog runs around the yard but is always on the end of its chain, so it ends up leaving a track in the dirt. Normally this track would be perfectly circul...

@DestructibleLemon Please
Actually stop
No one is going to do your KOTH
;_; this is why I am sad
Please be sad somewhere where it doesn't involve spam
03:22
@Phoenix I noticed earlier that you mentioned Monstercat
It is awesome
What's your favorite genre on Monstercat
brb round just started
r6s
So someguy is still loading on apparantly mcdonalds wifi
(rainbow 6 siege)
03:23
all right
@Mendeleev Anything by pegboard nerds
@Phoenix doesn't everyone love them
I think they had a tour in Seattle on 3/30/17
@ConorO'Brien make your language 1-indexing and return 0
@ConorO'Brien nil or None
03:29
(just like Jelly)
@ConorO'Brien 1+the index of the last char.
@ConorO'Brien append a z to the string and return the length.
@ConorO'Brien undefined, or equivalent.
@Adám Thats length
@Adám that's already there
03:30
@Adám that makes it equal to the length
two people got ninja'd
@LeakyNun if the language is 1-based, it makes it the length + 1
Return the string, "Could not be found"
@ConorO'Brien The reason is that then you can append a fall-back element and use the returned index to get the fallback.
@ATaco a fan of stringly typing?
03:32
Better yet make index return a container with all the indexes, and return the empty container when it is not found.
@Adám what
suppose the language is strictly typed
Anonymous
@ConorO'Brien 1-based indexing and return 0 if not found is the best way. I'm still paying for doing 0-based indexing in Actually.
@Mendeleev Wrong ping.
03:33
@Mego hmm... that's the second person who's suggested this. Now I need to do some research lol
"Hello".index("z") -> ()
"Hello".index("H") -> (0)
"Hello".index("l") -> (2,3)
Write the string to STDERR, then terminate the program.
Crash and delete the offending program
so it can't happen again
pretend I'm making a sane language and not vigil >.>
@Mego So interesting. There has always raged a 0/1 war in the APL community. J decided on 0, but Jelly is 1, and now you say this. I also think 1 is the best, as then you can use the equivalent negative indices to pick from the back. And 0 can be assigned special meaning.
Anonymous
03:34
The amount of times I've had to do íub in Actually to get contains is painful. It's doubly painful because I've been an idiot a lot and didn't think about cb.
@Adám equivalent negative indices? why not use ~ or the apl equivalent?
@DestructibleLemon That is ~?
62 (b): pop a: push 0 if a==0 else 1; pop "a" or [a]: push 0 if len(a)==0 else 1; pop f: push 0 if len(f)==0 else 1
63 (c): pop a: push character at ordinal a%256; pop [a],b: push [a].count(b); pop "a","b": push "a".count("b"); pop f, [a]: push the number of elements in [a] where f puts a truthy value on top of the stack
75 (u): pop a: push a+1
A1 (í): pop [a],b: push [a].index(b) (0-based, -1 if not found)
Pass the string to an attached callback function, return the value of that callback function.
03:35
return a random integer between 0 and the length of the string.
Anonymous
@Adám There are valid reasons for both. With 1-based indexing, unary negation gives you end-based indices. With 0-based, binary one's complement gives you end-based indices. 0-based makes more sense logically, but 1-based is very useful for code golf.
Anonymous
@LeakyNun A1 is í
"String".index("j", (badstring)=>"Ono")
Anonymous
@ATaco You can tell it's a bad idea because you wrote the example in JS
6
Yield, wait for other threads to process, then try again.
03:37
I've always heard 0-based makes arithmetic computations cleaner
Making bad index functions is a lot more fun than making a good one.
5
Remove the character from your codepage and throw an error.
@WheatWizard stop
Too much fun. Bad suggestions are the only thing I'm good at.
5
@Adám can't APL specify its indexing?
03:40
@ConorO'Brien Most dialects, yes.
@ConorO'Brien For low-level languages, sure. The community yet has to produce a low-level language though.
@Dennis by community do you mean PPCG ?
@ConorO'Brien Despite a number of very bad suggestions I think returning a container is a good idea, this allows the program writer to specify what they want to happen when the index is not present. If they are sure that there will be z they can just take the first value in the container. You would probably want to implement such a function eventually.
@Dennis brain-flak?
03:43
@LeakyNun not really
not yet
@WheatWizard Right now, I'm concerned with writing the framework in C, and am currently occupied with developing a string datatype. In my progress, I have written a string_index_of_char function, and am presently wondering what to return. In this case, I am limited to a number, and am left with the decision to retain a size_t and use the length-based approach, or switch to a ssize_t (signed) and use -1. I think I will implement such a function in the final product, however.
Anonymous
@ConorO'Brien ssize_t wouldn't make sense because then you could have elements whose indices you couldn't represent
@LeakyNun It's a Turing tarpit, but it doesn't exactly compile to byte code.
03:47
@Dennis sesos?
@Mego right, which would seem to make -1 unfeasible. I suppose I could have it return the length internally, but when writing the language itself, make the transition from length to -1
function safeIndexedString(str){
	return {value: str,
	index: function(s, callback){
		var n = this.value.indexOf(s);
		if(n==-1){
			this.watch("value", (name,old,nw)=>{
				var newN = nw.indexOf(s);
				if(newN!=-1){
					callback(newN);
					this.unwatch("value");
				}
			})
		}else{
			callback(n);
		}
	}};
}

var str = safeIndexedString("Hello, world!");
str.index("l", console.log) // "2"
str.index("t", console.log) // nothing...
str.value = "test"			// "0"
@ConorO'Brien Iverson even suggested an operator (adverb) which would select origin per use. ⍳:0 and ⍳:1. Dyalog added (as : is already used) as a way to get variant functionality, but we've not added the option to primitives yet.
@LeakyNun Looks like assembly, sure, but it's interpreted by Python, which is already rather high-level.
@Dennis oh...
03:50
That's an object that lets you index it if it doesn't contain the subindex, but will wait kindly until it can find it for it to run its callback.
Anonymous
@ConorO'Brien Actually... Since you said you're writing it in C, that gives me other ideas. If you're passing in a char array (or something that wraps a char array), you could output a pointer, and have NULL represent "not found". Or, you could return a struct with a size_t result field and a bool found field.
Brain-Flak can already be compiled into byte code either via C or C++
Soon Haskell will be added, if I ever figure out this problem I've been working on, and 1000000000 is working on a compiler that goes straight to byte-code without an intermediate.
@Mego My current implementation lies as this; I somewhat hoped to avoid unnecessary complexity, but your struct idea appeals to me...
@Adám thank you for the resource, it's helped considerably
You can't index strings by strings? only chars?
That logic is contained in a separate function
03:59
Fair enough.
04:22
.com
I'm just gonna prove Sad-Flak is TC by interpreting or compiling. What language should I use? it would be easiest to use a minsky machine, but I could do something else
Try Brainflak.
@ATaco hmmm. should I interpret or compile that?
@ATaco remember, silence is okay. if you want to talk, feel free to bring up some discussion fodder
also fun fact: because my thing doesn't have a length of stack thing that makes things annoying somewhat
04:24
@DestructibleLemon compilation is always easier IMO
yeah it is isn't it?
If you can transpile Sad-flak to Brainflak, you know it's TC.
Is brainflak not TC?
that would prove brain flak is a higher or equal class as Sad-Flak
not that Sad-Flak is TC
04:26
Oh, I got it backwards. Transpile Brainflak to Sad-flak.
Do you have a github?
@DestructibleLemon check out something like mini-flak
@ConorO'Brien it's mostly annoying because of arbitrary input
04:28
@DestructibleLemon why is your interpreter sorta golfed
no it isn't
Anonymous
1 message moved to Trash
wait a minute that is a different repo
@totallyhuman it is badly written, I'll give you that
@Mego stahp bullying me
04:30
@DestructibleLemon i was just saying you omitted some spaces in some lines and not in others
wait, I just realised I have a comment that says something is broken in my new langs interpreter
O_O
@Mego fair enough.com
ok, for comparison, see this:
it has comments of why I use seemingly unpythonic things
@EriktheOutgolfer Sorry they're really really recent
it is a much better interpreter
04:32
@DestructibleLemon see your GH page?
I think I will make a BF interpreter for fun even though it is probably going to be incredibly difficult
the main difficulty is accessing commands and numbers at the same time
this will be much hard
actually I'll prove TCness first just in case :P
should I compile minsky machine or brainfuck?
how to format a TC Proof paper?
People were talking about 1- vs. 0-indexing earlier?
Reason to use 1-indexing and return 0 if the substring is not found: that way, the returned index for when there is no match is falsy. (I think this is what Dennis said when I asked him why Jelly uses 1-indexing, if I remember correctly)
also in emulating bf it could be annoying to emulate input, to impossible for interactive input. so I guess I use a slightly modified version
You don't need io to be TC, just get []+-<> working.
How are BF interpreters hard?
in sad-flak
04:52
currently I'm doing a compiling proof
Ooh, sounds interesting.
(or transpiling but who cares)
¯\_(ツ)_/¯ I wouldn't know the difference :P
they mean the same thing but sometimes people think compiling only means machine code, or they just prefer less ambiguity?
CMC: given a positive integer, output that many dashes. e.g. 4 -> ----
04:55
Python: lambda x:'-'*x
@LeakyNun Àé-
Jelly, 3 bytes: ”-x
@HyperNeutrino '-'.__mul__
oh right
I could do this in sad-flak with a semi-large bytecount
04:56
I forgot that operators are functions are objects
or woefully with a mega byte count
nice
@DestructibleLemon that is very sad :( [no pun intended]
should I do it?
@DJMcMayhem What language is that?
@DestructibleLemon Depends. Do you have a bunch of time to devote to doing it? :P
it isn't as much of a tarpit as woefully and this is a simple task
04:57
Ah, okay. idk, depends on whether or not you want to :P
@LeakyNun ”-ṁ works too :P
and the same thing as my first solution but with a dot on top of the x
@HyperNeutrino V of course
@DestructibleLemon what is sad-flak?
Oh right, it's DJMcMayhem, of course it's V. :P
this is what I have so far:
<>({((()()()())<>())})
oh something was borked
UserScript idea: make it constantly send updates of the contents of the message box to a server so even if you don't send a message, it will be seen.
@LeakyNun do we need to handle 0?
05:04
I just found yet another way in which review is completely nonsensical on PPCG, although at least this time it seems to be intentional?
@HyperNeutrino Hehehe
I only noticed that looking through the review histories (which is something i do from time to time), and saw something that didn't make sense
@DestructibleLemon oh, that would add a byte to mine if we do
@DestructibleLemon refer to the third word of my CMC (cc @DJMcMayhem)
05:06
I get the feeling that Stack Exchange is optimized for it being 100% obvious and objective whether posts should be closed, and the only reason they ask for multiple votes is because of people not even putting in the minimal effort needed to review them correctly; whereas the actual situation is that many posts are borderline or reasonably arguable and if we had a working voting system on them, it'd help solve the disputes
@DestructibleLemon unless you French.
What does that have to do with it?
In France, "positif" means >=0
Anonymous
@ais523 The CV system is a lot more effective on Q&A sites, where there's a lot less borderline dupes. We're an anomaly that has yet to be dealt with fully.
Interesting
Iirc, fatalize and tux are French
05:07
@Mego I'm not at all sure any of our review queues work at all, except for suggested edits and possibly first posts
@DJMcMayhem indeed.
even suggested edits doesn't really work, but it works better on PPCG than it does on, say, meta SE
actually I think I'll go back to my original assumption, which is that nothing on SE actually fills any approximation to its intended purpose
Anonymous
@ais523 The CV queue works pretty well except for that edit issue. I agree that the LQA queue doesn't work at all. We'd be better off without it.
I also feel like it would be more affective to make reputation and review not exactly correlated; my idea was perhaps have a system where people with more "helpful" reviews (that is, reviews that turn out the way they reviewed it; for example, I voted to Leave Open and it never got closed) get higher priority/weighting. Kind of like how some people have like 10 flags per day and some people have 100.
Also LQA is bad for PPCG because a lot of answers get kicked into LQA because it's too short, whereas that's HQA for us :P
3
well, the review queues mostly only give exposure to actions you could do anyway
e.g. I can vote to close either inside or outside the post
although if I see a post getting close votes and I agree, I'll typically try to find it in the review queue anyway just for the badge progress
05:10
> just for the badge progress
that's the reason behind me doing half the things I could do one out of two ways :P
it comes to the same thing either way, but one way you get rewarded
if you vote to close a post directly on the post, and it's in review
Rewards are nice :P
you're just denying people the chance to get badge progress for no benefit to anyone
so it's a fairly antisocial thing to do
That's an interesting way to think about review on a "forum" site. :P
hey guys, first sad-flak answer to anything!
<>({((()()()()())<>[()])})≤()≥
(({}))(({()}[()]))<>≤()[[]]≥
<>≤≥
64 bytes in my "codepage"
would you guys like an explanation?
05:12
I would like a GitHub link; an explanation would be nice too.
39 mins ago, by Destructible Lemon
https://github.com/Destructible-Watermelon/sad-flak
@HyperNeutrino ok, let me write it up then
unfortunately I can't use newlines for fancy formatting
okay
hm, this looks slightly confusing
but interesting
also plus 3 for ascii output
so 67 bytes
@HyperNeutrino that was the aim
it is like a more confusing version of brain flak, but golfier woefully
Is there a specific reason it's called "Sad" Flak?
IIRC it was based off the idea of writing another language like woefully called "Sadly"
05:17
<move input to the off stack>(this evaluates to 45, by multiplying and stuff{((()()()()())<>[()])})≤(jump to next line)≥
(({pop and push to stack twice}))(({(pull the input from the off stack)}[(subtract 1)])push twice)<push one of them to the off stack>≤jump by 1-(is the input number still not 0)[[]]≥
<push one dash to the off stack, removing it from output>≤halt≥
@HyperNeutrino because woeful is sad
so ATaco is kind of right
Ah. I see.
CMC: Given n, produce the identity matrix of n ** n.
wait let me test that still works
0/10 dupe of main
@ATaco vtc as dupe
05:19
@LeakyNun vtc your vtc as a dupe as a dupe of my vtc as a dupe
5
yeah it does
hey no fair editing it!
@HyperNeutrino vtc your vtc as a dupe as offtopic
@DestructibleLemon I was going to reply with another vtc but that would get vtc'd as spam. Or I'd get kicked, either way I don't like the outcome :P
:(
CMC: Take input.
05:21
what do you think of sad-flak? I think it was pretty good at tying some of the graph together
@ATaco vtc unclear/too broad
do we need to halt once it is finished
wait, are people implementing PPCG-style esolangs simply to make the graph of influences more connected?
@ATaco Realize that under standard I/O formats, I'm allowed to make a function that accepts input as a parameter. Therefore, I think I can do Python, 0 bytes.
@ais523 no, I made it, not just implementing it
@HyperNeutrino no you can't
specifying and implementing, then
There are stack-based, queue-based, tacit, and memory-taped based languages. Is there a tree-based language yet? (If not, dibs)
05:22
... I might have been...
@DestructibleLemon aw :(
grr, I hate it when I say something which isn't precisely what I mean
but the idea of a concise woefully was on my mind for a while
@HyperNeutrino Lisp
and this was a pretty nice crossover I think
05:23
@ais523 do you mean "something that isn't"? :P (you probably meant to say what you said but I just felt like saying this <----- anyway)
@HyperNeutrino hev
@HyperNeutrino treehugger
@ais523 oh :( well rip not original idea then
@HyperNeutrino BRB, writing a binary tree language.
27 secs ago, by Destructible Lemon
@HyperNeutrino treehugger
05:24
How about a heap based language?
> binary
wait no
i'm being stupid
heaps are trees
just special trees
Are there Christmas Tree based languages?
you could use the heap's operations as bases for the language, rather than its internal implementation
@ATaco it was binary
treehugger uses a binary tree
I'd imagine you'd end up with a language which used a (precise version of) sleep as both control flow and data storage
05:26
Hm. Interesting.
I've been meaning to implement that for a while just so that nontrivial programs become impossible to run without timing out
it seems like a fun way to exploit corner cases in PPCG rules
@DestructibleLemon That shall not stop me.
> exploit corner cases
lol ಠ_ಠ :P
How about a map-based language?
Oh wait that's every language with variables
if you can access the variables by name, yes
I remember being very impressed at some anagolf solutions in Perl
which used the entire space of variable names as a hash table
to save a few bytes
like, if they wanted to store something opposite the key foo, they'd assign to the variable $foo
05:29
Interesting.
The way my tree based language will work will be using tree based code, not just memory.
almost all languages have tree based code
with the exception of a few esolangs and a few concatenative languages
root {
    node {
        child {
            etc...
        }
    }
}
the initialism "AST" stands for "abstract syntax tree", and it's one of the most fundamental notions in compilers
Also things ultimately become trees so like 2 + 3 * 4 becomes + (2, * (3, 4) ) (I think)
05:31
yes, that's exactly how 99% of compilers work internally
Binary tree syntax.
@ATaco ah, okay. I remember this from one of my classmate's presentations in grade 8 :P
| ?- A = +(2,*(3,4)).
A = 2+3*4
What would be a non-gimmicky way to have an esolang in a binary search tree structure
^ an actual interaction I just had with GNU Prolog; Prolog stores unevaluated arithmetic expressions as parse trees
05:32
@ais523 :o
I mean, it would be gimmicky
Make a language where the only memory is the source code file
Because it's an esolang
but still
@LeakyNun it's actually stored as +(2,*(3,4)) internally, it just gets printed as 2+3*4 because that's the way most people would write it
@HyperNeutrino that's about half of esolangs.org/wiki/Category:Self-modifying
Essentially prefix notation
@ais523 oh right. but they have other memory too, not only the source file
05:34
there are several languages which use prefix notation
Pyth is the best-known one here
@HyperNeutrino not all of them (although many of them do)
ah ok
wait you said half
ಠ_ಠ
the language I invented recently for this answer is a good example of a language where the only data storage is the source file
and I did that because Jelly's bad at storing two mutable values at once
so I didn't want a separate program (implying a mutable instruction pointer) and data storage
Ooh interesting
how do I make sure my python code doesn't error out with many recursions? aka how to make recursion deep
import sys #(if you haven't already)
sys.setrecursionlimit()
but what do I put in parens?
how big should it be? a million?
a really large number
IIRC it's safe to make it way too large, it won't hurt anything
making it larger than the amount of addressable memory your computer has is clearly going to be high enough
05:39
9 ^ 9 ^ 9 ^ 9 should do you.
you don't want it to be so large it takes time to calculate :-)
wtf I broke it somehow just by making some numbers bigger
as in I made the input to the program 1000 instead of 100
like wtf

« first day (2337 days earlier)      last day (2801 days later) »