« first day (2044 days earlier)      last day (1192 days later) » 

12:00 AM
@DJMcMayhem you should start a new extreme sport and try it without your legs on the floor next time
Puts on epic movie voice.
> Golfing while skydiving... Coming soon, to a user near you...
I need to make a golfing challenge based on skydiving now...
@DJMcMayhem >_> I thought you meant actual golfing not code golfing
Meh, golfing while skydiving is easier than rock climbing/bouldering while golfing
@DestructibleWatermelon If you answered that while skydiving and posted video proof, I would give you the biggest bounty I could offer.
12:04 AM
@βετѧΛєҫαγ not really. it would be difficult to get data connection up there
@DJMcMayhem I think that would be really hard: you have to film with one hand and golf with the other
That's why it would totally be worth a bounty.
also you'd probably drop the phone
@DestructibleWatermelon or use gopro with fancy camera helmet attachment
@DestructibleWatermelon well you obviously need a camera man. It shouldn't be hard to get a major TV network to film you, this being such an epic extreme sport
12:05 AM
I'm sure Red Bull would sponsor you
I don't think I'm actually allowed to go skydiving anyway...
@βετѧΛєҫαγ Yeah, Red Bull is a huge promoter of code-golf...
@DestructibleWatermelon You're on the no-fly list?
@βετѧΛєҫαγ no
12:07 AM
Then who would stop you?
I think minors can't skydive?
@Optimizer Dammit Optimizer, we're having a serious conversation here ;)
@DJMcMayhem They can't? Oh well that's a shame
ppl are getting me as a tattoo
llama =/= wolf
see the lower half
12:09 AM
@Downgoat maybe we can get an eagle to pick you up and fly you around while you golf
@DJMcMayhem In front of the moon
@Maltysen i.e. when i fly united airlines and golf :P
@Downgoat you get internet there?
@Downgoat whoaaaa, never heard of that before, that's awesome
12:11 AM
... is this first time you're hearing about inflight internet???
@Downgoat I knew the airlines offered it at ridiculous prices
it was one letter...
oh you must of run that through my typo challenge
12:14 AM
bai gn!
What Releasing Helium Nuclei said
See you guys tmrw
btw. which syntax is better for cheddarfiles?:
Gaot Detector, Detects if gaot is Upgaot or Downgaot
can anyone figure out what service these guys actually offer: cloudwords.com. I know its something to do with marketing, but can't figure out what.
Gaot Detector: Detects if gaot is Upgaot or Downgaot
12:16 AM
@Downgoat is that a builtin? :P
@Maltysen they are a global marketing campaign management company as far as i see
@Maltysen This is for mailing campaigns and gathering marketing statistics and the like.
@quartata oh
@Maltysen brb
question: Should it the goat deetector be DetectUpgoatDowngoat or DetectGoatDirection
the second one
12:21 AM
@quartata the company went bankrupt, and my dad's friend bought their code, and my dad wants me to start exploring it, but I'm wasn't even sure what the company did
CMC: Given two strings (possibly of different length), output the two characters at the same index that have the largest sum.
@ASCII-only My number is much, much, much, <many, many, many, <many, many years later>, many, many years later>, much, much larger than 9^9^9.
@ΛεγίωνΜάμμαλϠΨΠʹ I know
@DJMcMayhem by ascii code points?
12:23 AM
@ΛεγίωνΜάμμαλϠΨΠʹ But looks like removing the factorial there is the best you can do with 17 chars
@Maltysen Yes.
@DJMcMayhem test cases plox
@ΛεγίωνΜάμμαλϠΨΠʹ Oh wait you managed to find space for more chars?
Oh, my solution was 17 bytes, I later found out that I had 18
12:24 AM
@DJMcMayhem hosCMNC
@ConorO'Brien 'abc', 'aaa' --> 'ca' 'hello', 'world' --> 'hw'
@Maltysen is that pyth
Replaced 9^9^9! with 9^9^99!
@ConorO'Brien yeah
it looks like hasCMC
12:26 AM
@ΛεγίωνΜάμμαλϠΨΠʹ Is that (9^9^99)! or 9^9^(99!)?
@ASCII-only 9^(9^(99!))
A: Help: Aliens Programmers only speak ASCII

Steven H.Pyth, 17 bytes Another one of those Pyth programmers. Sorry. #Jw jKC9J jK+CMJT Try it online! or use an easier-to-read test case. Explanation: # Until we run into an error: Jw Read in the next line of input and call it J. (When there i...

I have sinned
12:42 AM
Do you think that a primality checker is possible in Logicode?
what operations are possible in logicode?
github link pls?
Bitwise or boolean?
@StevenH. (What's the difference?)
You can do primality checkers for sure, then
12:44 AM
well, you can make recursive loops
Currently I only have conditionals
No while loops
Or for loops
(bit wise means operations on each bit of the number (10 and 11 yields 10))
Yeah I only have boolean
Can you call a circuit from within the circuit itself?
well, circ name->1&name recurses
12:45 AM
@StevenH. Yup
Perfectly possible!
or however circuits work, idk
so recursive loops are well possible
circ r(a)->r(a)
That recurses as well
@DerpfacePython You can make NAND-gates, so FSMs should be possible
finite state machine
or flying spaghetti monster
12:47 AM
circ implies(a,b)->cond a->b/1
Although data could potentially be stored in the function call stack
So just maybe TC?
@StevenH. Should I include conditionals into circuits?
Also you don't need curly brackets for conditionals.
OMG I have 666 rep
@DerpfacePython Don't think it would be tc without conditionals in circuits
I can still make an implies gate without conds in circuits
12:51 AM
Ummm should I just get rid of conditionals and put while loops in?
circ halfadder(a,b)->(!(a&b))&(a|b)
circ otherhalf(a,b)->(a&b)
now you can add
You can do this:
circ xor(a,b)->(!(a&b))&(a|b)
circ halfadder(a,b)->(a&b)+(xor(a,b))
is this your own language?
12:55 AM
You can output multiple bits using + as separator
@ConorO'Brien Yeah
In that case,
circ fulladd(a0,a1,a2,a3,a4,a5,a6,a7,a8)
It's called Logicode
why not add a syntax for adding operators?
uh, gimme a second
@ConorO'Brien Nope
12:55 AM
why not?
@ConorO'Brien You can already add stuff
So no
that doesn't seem to relate to adding infix operators :P
Only AND, OR and NOT
Wait, how do you gain access to individual bits of a multibit return value
I'm thinking of doing a python-esque thing
So like
12:58 AM
With slicing or without
@StevenH. How much Python do you know?
I might need help getting rid of evals and adding those slicey things
I'm more competent at it than any other programming language, probably
Yeah, I'm probs going to do slicing
@StevenH. Can you help me, then?
(Also, do you have GH?)
1:00 AM
I do but I'm horrible at using it
I'm probs going to start implement this now
Looking at the .py file, you don't have a __name__ == "__main__" check to do your file reading code
which means that it'd be difficult to interface with the Logicode reader with other Python files (any import logicode would cause there to be a file name request to the command line, etc)
now see my horrible spaghetti code, particularly the bottom (I also totally did not add the __name__ == "__main__" check right now, it's obviously of course been there forever and a half) github.com/Steven-Hewitt/LI/blob/master/Interpreter.py
Forever may or may not be a period of time roughly equivalent to 20 seconds
@StevenH. You shoule probably refactor run into the if __name__ == "__main__" part
1:15 AM
I've kinda given up on development of the Python version of the language, seeing as recursion limits are stupid and mean that standard programs in LI will routinely pass the limit with inputs as small as 10
And, also, recursion is deeply broken and I can't find out why
I'm working on a LISP version that hopes to fix most of those things
@StevenH. Why are you even using recursion
it's LI's looping construct
Where do I put the if __name__ == "__main__"?
At the end
@StevenH. You should never use recursion. There's always a better way
Unless you're golfing
Also, you know you can just do sys.setrecursionlimit(1000000) right?
At the bottom, and then put all of the code that relies on input directly (pretty much everything that isn't a function definition, a constant, or a class definition) inside the if statement @DerpfacePython
@ASCII-only It's a functional programming language, tail recursion is the best way
1:18 AM
@StevenH. If it's tail recursion then just loop it
And besides, it is a golfing language
Meaning no recursion at all
You're writing it in Python
That requires intelligent parsing which I'm too lazy to do
You don't have to make recursion actually use recursion in Python
I don't even keep a look-ahead when I'm parsing
1:19 AM
@StevenH. Then how exactly would Lisp solve that?
LISP makes it a lot easier for me to do the parsing code... by making it so that I can just expand things then pass it up the chain
I can make LI the Pyth of LISP
Argh I need to get rid of the eval in concat and the var bit of lgc_process
For my code
Why do you need to get rid of eval? It seems valid
is the eval to parse strings?
@StevenH. eval is never safe
Just do preprocessing checking to verify that you only have variable names and accepted language constructs
1:24 AM
@DerpfacePython Wait, int?
What do you mean?
what exactly does concat do
Ouch so many evals
Have you read the specs for logicode?
@ASCII-only Don't judge me
1:25 AM
I mean, the next best thing is to implement a parser all on your own, which seems like way too much effort
@StevenH. It actually isn't
If you use a parser framework all you need is a grammar
parsers aren't that hard
Speaking specifically to @DerpfacePython, who doesn't have experience with parser frameworks or grammars
1:27 AM
@StevenH. No, I do not have any experience
@StevenH. Grammars aren't hard to learn, plus they are useful to have even without a parser framework to describe the spec of the language
What's a parser framework or grammars
@DerpfacePython how will you get rid of the var bit
What var bit
Grammars 101:

Grammar for a programming language is extremely similar to what grammar is in English. It describes what is valid or invalid within the language. (cont.)
1:30 AM
@DerpfacePython Grammar is basically a way to describe your language's syntax
You have to define tokens/token classes first e.g. DIGIT = "0" | "1" etc
Then you have more complicated syntax
Do I have to put them on the top?
Like in @StevenH.'s code for his parser
Then eventually you have a grammar rule for a program (usually Expression+) or something
And then combine them: NUMBER = DIGIT : DIGIT NUMBER
My parser is actually bad and you shouldn't model yours off of mine
1:31 AM
@DerpfacePython brb, looking for something
I was trying to see how viable it was to create a language parser without a lookahead symbol
@DerpfacePython antlr.org
@StevenH. A lot of parsers actually do that
What is ANTLR?
@DerpfacePython Basically for ANTLR you define your grammar in a file, pass it to ANTLR and ANTLR processes it into a parser
I know Brain**** does that, what other languages do it
1:33 AM
In computer science, an LL parser is a top-down parser for a subset of context-free languages. It parses the input from Left to right, performing Leftmost derivation of the sentence. An LL parser is called an LL(k) parser if it uses k tokens of lookahead when parsing a sentence. If such a parser exists for a certain grammar and it can parse sentences of this grammar without backtracking then it is called an LL(k) grammar. LL(k) grammars can generate more languages the higher the number k of lookahead tokens. A corollary of this is that not all context-free languages can be recognized by an LL(k...
Looks like you need a minimum of 1 token lookahead though
How does ANTLR work?
what I currently have for my programming language interpreter:
if any([any(' 'in i[0:1]+i[~0:~1] for i in program),any(any(not i in "| " for i in j)for j in program),not any(' ' in i for i in program)]):
    print("confuse :(")
while True:
    while program[ip[0]][ip[1]]!=' ':
        if len(program[ip[0]])<=ip[1]:
just finds the first space, after checking the program is valid
not useful, but progress!
@DerpfacePython Basically it reads the rules, creates a function to recognize each token/expression, and returns a parser or something
I'm not sure whether what I built can be considered LL(0) or LL(1)
I was trying for LL(0)
Effectively each token is agnostic of what comes before or what comes after it, and is just called with some inputs and returns some other set of outputs
1:40 AM
I still don't understand
Too hard 4 me
@DerpfacePython what does concat do
I need to give you a bit of background first
@ASCII-only executes a function (called a circuit in Logicode)
So circuits can return multiple bits
Which are separated using the + operator
@DerpfacePython So it evaluates each bit then returns it?
1:41 AM
Use the actual functions so you don't have to use eval
What do you mean?
also why reverse them
Oh you mean for that bit
That was just me being lazy
Use var_funcs = [concat, find_in, rep_str, parse_circ][::-1] instead
1:42 AM
Cause it looked messy and stuff
So I thought it would look nicer like that
@DerpfacePython ?
(personally for me)
But you don't even need eval
I know
But it looked clumped and hard to work with
And it looks equally clean if not cleaner
this way
1:43 AM
please help how do I make this less crap
any([any(' 'in i[0:1]+i[~0:~1] for i in program),any(any(not i in "| " for i in j)for j in program),not any(' ' in i for i in program)])
@DerpfacePython seriously what is the reverse for, it just decreases performance
@DestructibleWatermelon I have no idea what that does
this is the issue...
it checks three things
If you explain, I can create a regex
OK fixed
I still need to get rid of the other evals
Halp plz
1:45 AM
it checks whether the first and last chars each line are spaces, whether there are non-permitted chars, whether there is a space in input
@DerpfacePython You know you could have just changed it to var_funcs = [parse_circ, rep_str, find_in, concat] right?
No, I got rid of it entirely
Wait a second
You should extract that to a function if you're calling it a lot
Which one?
Never mind
1:47 AM
@ASCII-only I'm mildly curious if you accepted "I can make LI the Pyth of LISP" as an actual valid point or if you just wanted to fry other fish
Apparently Mego forked my thing
@StevenH. It has no readme so I have no idea what it's like, but if you're basing it off LISP it may be better to transpile to LISP and eval
Plus if it's easier for you there's no reason not to switch languages
Which is exactly what I mean by the above statement, as that's exactly what Pyth does except with Python
The wiki assumes that I have a lot more things developed than I actually do, but github.com/Steven-Hewitt/LI/wiki/Introduction should be a good-ish introduction
@DerpfacePython You'd need to parse bitwise ops if you want to get rid of eval
And I have no idea where to start
That's why I need help
1:56 AM
@ASCII-only if you're using parser gen LL is not way to go
@Downgoat I know, Steven wasn't using a parser gen
Plus DerpfacePython's looks like it shouldn't need one
how do i use re in python to check if a string matches a regex
@DerpfacePython is Logicode meant to be a golfing lang
That's impossible, otherwise circ wouldn't be as long
nor would -> be a symbol
@ASCII-only oh i thought he was using ANTLR
2:00 AM
Neither of us were, ASCII recommended it but I hadn't been using it (honestly, it was more messing around than anything else what I was doing with LI's Python interpreter)
@DerpfacePython so what is a valid variable name? Are you just going to follow python's rules?
hmmm, how should I handle this case in my language?:
| | |
|| ||
| | |
should the instruction paths intersect, like this?
@ASCII-only thoughts on LI, then?
or just go down one path, like this:
|/| |
how should I handle multiple choice paths?
|| |
| | |
Random choice?
2:13 AM
@DerpfacePython wait will you have circ foo bar->!bar
I'm thinking of an esolang based on operators
@ASCII-only Ummm... it's like this: circ foo(bar)->!bar
@ConorO'Brien which operators?
2:15 AM
idk yet
CMC: Define four new set operators that together are TC, but no subset of them are TC
set operators being TC?
example? :/
define set operators
So is Logicode not TC yet?
Or is it
I can make a truth machine (kindof)
2:18 AM
truth machine =/> tc
@DerpfacePython Will there be something like circ foo()->?
try emulating the mu recursive functions
@ASCII-only Yep
Anything that operates on multiple mathematical sets to provide one or more output sets, where you are free to define the set of possible set elements and restrictions upon valid sets
2:21 AM
@StevenH. hwo is retina one of those?
How can you tell if a language is turing-complete?
Retina operates on strings, which can be represented as sets of (location, character) elements where the locations are contiguous natural numbers from 0 to n where n is the number of elements in the set
There's multiple ways to tell:
1) if it can emulate mu-recursive functions en.wikipedia.org/wiki/%CE%9C-recursive_function
2) if it can emulate a Turing or Harvard machine (incl. Brain****)
So if I can port it to BF
that means it's TC
Well, crap
It's going to take forever to prove that this is TC
2:27 AM
But that's not the only definition
And I have no idea how to prove it otherwise
Simple rule: If you can emulate/translate the entirety of a TC language X to language Y, then Y is also TC
Q: What makes a language Turing-complete?

Curious CatWhat is the minimal set of language features/structures that make it Turing-complete?

@ConorO'Brien ground is lava is goats favorite game
@DerpfacePython As the programming language interpreter stands, it is not TC. When you implement slicing, it will be, even if you just implement head and tail (a[:1] and a[1:])
2:32 AM
I'm thinking of changing the conditional form an if to a while
A: What makes a language Turing-complete?

flowi know this is not the formally correct answer, but once you take the 'minimal' out of 'Turing-complete' and put 'practical' back where it belongs, you'll see the most important features that distinguish a programming language from a markup language are variables conditionals (if/then...) loop...

did this guy even read the question?
> but if i had to teach n00bies young or old 'what is programming' and 'how to learn to program', i'd hardly start out with the full breadth and width of the theoretical foundations of Turing completeness
no part of the question even mentions n00bies
can I flag for being wrong >_>
> i know this is not the formally correct answer
it's also not AN answer :)
*some guy asks about minimal features to be TC*

other guy: if i had to teach n00bies young or old 'what is programming' and 'how to learn to program', i'd hardly start out with the full breadth and width of the theoretical foundations of Turing completeness...
I don't know why I can't get over this
and the stupidity goes on in the comments, as flow still REFUSES to read the question

yesyesyes i know. but all the examples given are more or less esoteric (while maybe interesting or surprising), my answer was a pragmatic one, and very probably not minimal at all. i think it's important to point that out—this page was #1 when searching for Turing-completeness on google, the answers here are IMHO of little use for, say, a n00bie who wants to know what distinguishes HTML from PHP or Python. i mean, brainfck is not called brainfck for no reason
@DerpfacePython don't, you can keep the if and let the programmer do the while loop themselves with a circuit
@DerpfacePython ^ I agree with that
flow, Berlin, Germany
Top tags: turing completeness Score:-2
2:43 AM
If condition not met, return a new call to the function with changed parameters; if condition met return current parameters
Maybe consider allowing circuit imports? I wouldn't mind building a stdlib
@ConorO'Brien Remember ~earthbit?
I forgot what Tajes meant
@DerpfacePython Once you have slicing, if you want to do a proof of TCness, implement Rule 110
@DestructibleWatermelon why do you ask?
2:54 AM
Ah, cool
Rule 110?
The Rule 110 cellular automaton (often simply Rule 110) is an elementary cellular automaton with interesting behavior on the boundary between stability and chaos. In this respect it is similar to Conway's Game of Life. Also like Life, Rule 110 is known to be Turing complete. This implies that, in principle, any calculation or computer program can be simulated using this automaton. == DefinitionEdit == In an elementary cellular automaton, a one-dimensional pattern of 0s and 1s evolves according to a simple set of rules. Whether a point in the pattern will be 0 or 1 in the new generation depends...

« first day (2044 days earlier)      last day (1192 days later) »