« first day (2190 days earlier)      last day (2636 days later) » 

3:00 AM
Yeah I hate Node and even I'm getting sick of people saying "the problem is you're using node" as a joke with no justification or relevance to the context
 
I'm working on caching right now and I like to ask y'all to hold off on any auto-run user scripts until that is done. The new TIO gets quite a bit more traffic than the old one ever did, and using these script during rush hour would be unpleasant for all involved.
 
Was keeping []<> balanced in BF actually difficult, or was that an easier task than I imagine?
 
@Pavel You don't need to
 
Anonymous
It's one thing to have actual criticisms against Node to use in making jokes. It's another thing entirely to blindly mimic what others say in an attempt to be funny.
5
 
The interpreter doesn't read code in loops it doesn't execute
 
3:03 AM
But if you don't the Brain-Flak complains, no?
Ah
 
So I put all my brainfuck in a loop and skipped over it
 
@Mego Exactly.
 
That makes your accomplishment instantly seem so much less cool
 
Not all interpreters do that actually, Crain-Flak will complain, but Rain-Flak will not
@Pavel Yeah it was pretty easy once I knew what the challenge was
 
0
A: Golf you a quine for great good!

ATacoForte, 75 Bytes. 2LET1=6 3PUT34 7PUT34 8PUT59 1PRINT" 2LET1=6 3PUT34 7PUT34 8PUT59 1PRINT"; Kinda Explained 2LET1=6 // Line 2, Set 6 to 1. Which means what -was- line 1, now is line 6. 3PUT34 // Line 3, Put a " 7PUT34 // Line 7, Put a " 8PUT59 // Line 8, Put a ; 1PRINT"...

Also golfed now.
 
3:05 AM
Neato!
 
Anonymous
Jan 23 at 16:45, by Mego
Seriously, the people who run jokes into the ground ruin things for everyone. It really needs to stop. The goat stuff was funny at one point, but it's not even beating a dead horse anymore - they're punching a bottle of glue.
 
What I originally thought the challenge was was extremely hard.
 
Anonymous
s/goat/Node-bashing
 
Anonymous
And now for something that is actually funny: youtube.com/watch?v=XZf1YTQ3Wq4
 
@WheatWizard What did you think was the challenge?
 
3:07 AM
@ATaco If you had used the TIO-generated Markdown, the leading newline would be visible. Just sayin'.
 
Anonymous
@Pavel I hear there's a great restaurant there
 
I fixed the leading newline. That works too.
 
@Pavel write a program in A that outputs a program that when run in B returns the original
 
@ATaco You did? The TIO link still shows the newline.
 
Whooops.
 
3:08 AM
That actually seems like an interesting challenge
 
I'm thinking of posting it because it is pretty hard and reasonably fun
 
Fixed.
 
New challenge: write a reliable CAT program in Forte or prove impossible
 
Forte can only read INT input.
 
GET
Actually, with GET it's not even hard
Ignore me
 
3:10 AM
My bad.
 
Since it stores characters, not numbers, it won't break anything
 
Stores it's int representation.
But you choose where.
 
That's what the spec says, that's not what happens.
 
Oh yeah, whatyaknow
That's the only way to store a string it seems.
 
"This language is Turing complete; it can do anything!" ... "cat might not be possible."
 
3:13 AM
I wrote a quine, I can write a stupid cat.
 
Well, being able to read input at all isn't required for Turing Compleetness
 
>:I
 
Well yeah, since get stores characters, as long as you store it in a big enough number it won't fail
But if it stored numbers, as the spec says, then it would break if the user input a character that represents a command in your program.
Hmm... how about adding 2 numbers read from STDIN?
 
wat
@WheatWizard I already posted that..
There was also someone else who posted one.
 
@wat Link?
 
3:16 AM
@wat Where
 
This is something of a premature question since Pytek isn't out yet, but:
 
The issue is I don't think it's possible to make one that terminates on EOF.
 
wat
20
Q: Cheating Cyclic Quine

watConcept Write a program that outputs code in its programming language. That code, when executed, must output the original program. Rules Since this is a cheating quine, you can read the original source code. First output program must be in the same language as the original program. You may no...

28
Q: Golf a mutual quine

dan04Using two languages of your choice, write the smallest “mutual quine” you can. That is, write a program P in language A that outputs the source code for a program Q in language B, such that the output of program Q is identical to the source code for P. Empty files don't count, nor do "read the ...

 
@wat Thanks!
 
wat
@WheatWizard YW
 
3:17 AM
The second one is the one that requires them to be different languages.
 
Pytek has an operator <: that creates lazy definitions. f <: expression is essentially equivalent to f = lambda: expression except you don't explicitly call it, merely access it: f` vs f()
 
It evaluates only the first time, or every time it is referenced?
 
Woud that wok for our snippet function rules?
 
@quartata is that backtick supposed to be after the f?
 
@feersum Every time
 
3:20 AM
@quartata How do you give it input?
 
@Downgoat No. Stupid virtual keyboards
 
If it's every time, that hardly seems worth a special syntax.
 
> Woud that wok
 
@quartata ah ok
 
Since presumably you have some easy way to write lambda:x.
 
3:21 AM
@Pavel You don't. It's a nilary function.
 
cheddar just has getter syntax (see swift for example it is similar)
 
wat
@quartata birdsmiley?
 
@quartata Seems fine to use that as a 0-arg function
 
@feersum It's a little more sophisticated but in this situation it's equivalent
 
Hardly seems worth giving it a special syntax, tho.
Does Pytek have a public implementation, btw?
 
3:23 AM
No not yet
 
The Mathematica language designers did deem this worthy of a language feature, but they think that about everything.
8
In Mathematica it's f := expr
 
As opposed to f[argument_] := expr
But that's not special syntax, it comes from every symbol in Mathematica being interchangeable for most syntax.
 
@quartata So (assuming you have a similarly simple syntax for lambdas) the only real difference is byte savings from not having to use the () in f(), right?
 
@HelkaHomba Lambdas are \(args){...}
So no
 
@Pavel This does not fall out of the function definition syntax. f[] := expr is different than f := expr.
 
3:27 AM
f<: isn't much longer than f=\(){}
 
It's 2 bytes.
 
Lambdas are much more useful, so those should have the short syntax.
 
Ruby doesn't require parens to call functions so it should be fine anyhow by our standards
 
@quartata is Pytek scripting language or programming language
 
@feersum They are very differnt concepts just being abused here
 
3:28 AM
Further golfed the Quine.
 
@quartata How is it different?
Doesn't allow closures?
 
Cool. I'm just waiting for @Dennis to magically snipe it anyway.
 
f <: ... is actually shorthand for updating:f = ... which is a type
 
That 50 rep is mine
 
0
Q: Your very own "for" instruction, redux

Hugh AllenInspired by Sygmei's question, I'm interested in finding out what languages can "do this properly". Your task is to write a "for loop" function / macro / instruction. The arguments should be: an initializer a test an increment a body All of these are "pieces of code" and should be able to a...

 
3:29 AM
@Downgoat The latter
 
The real question is, what could you do with that that you couldn't do with a 0-argument function?
 
func:while((updating bool):cond)
 
Since a lambda is \(args){}, could a zero-argument lambda be \{}?
 
Explain?
 
@quartata That could be a single variable, a better example would be something nondeterministic e.g. takes input or is random
By the way, just want to throw out there that Mathematica is 13 GB.
 
3:33 AM
@feersum This turns the function argument into something that is evaluated every time. The example there was say a reimplementation of a while loop
 
There are that many builtins
 
@quartata Is there supposed to be a loop body anywhere?
 
Oh oops. func:while((updating bool):cond, block:body)
You can call that just like \while(...) { ... }
 
You could do that just fine with a 0-argument function returning bool.
 
wat
@Pavel no it isnt
 
3:36 AM
Oh yay, star troll. Go away.
 
wat
it fits on a raspberry pi just fine
 
Raspberry Pi might have a smaller installation?
 
wat
yeah no goat builtin
 
I rest my case.
 
@feersum Sure but that's ugly as sin. Also this allows for optimizations with pure functions
 
3:37 AM
what is going on with the stars ._.
 
Trolls be trolling.
 
wat
@Downgoat people are erasing my genuine stars together with the quartata love stars
 
If your code has a while loop with a pure function as the condition, then it must be either while(true) or dead code.
 
Not in that example obviously
I mean updating f as needed
 
If a function is pure, it returns the same thing every time.
 
3:39 AM
@wat There is a problem if your stars are being mixed with the spam stars
 
as the variables it uses change
 
wat
yaik
 
@feersum I am well aware. Do not confuse my while example with the whole syntax
 
I'm not.
Why would you want to have a 0-argument function that returns the same thing every time?
 
Still, if it returns the same thing every time, why reevaluate it?
 
3:40 AM
If you have f <: a + b we only need to re evaluate f when a or b change.
 
@feersum Isn't that the basis of most of Java? (only slightly in jest)
 
@quartata OK, but that's not a pure function.
 
@AdmBorkBork ... I don't get it.
 
@Pavel might also be if you have something such as generators, you'd only have to evaluate once
 
Optimizations when the definition contains only variables and/or pure functions
That's what I meant.
We don't know when \rand() changes obviously
although I suppose since that changes the seed...
 
3:43 AM
Anyway, limitations of an optimizer implementation seem like a bogus reason to introduce language features.
 
\input() then
@feersum It wasn't the only reason, of course not
 
Why do you need all the \s? That seems like pretty unusual syntax.
 
gahhhh
 
@Pavel if yo're trying to post a backtick I believe it's: `` ` ``
 
@Pavel You're not supposed to access a value directly, but use a zero-argument Get() function, right?
 
3:44 AM
Well if you didn't have the backslashes, functions wouldn't be ugly, and re-evaluating "variables" would lose their purpose, I think.
 
Question: do you think Cheddar counts as engineering project (for science fair)? I mean software engineering is still engineering
 
@feersum So you prefer while([]{...}) to while (...). Good to know :P
 
I HAVE LERNED TO DISPLAY A BACKSLASH IN CODE SYNTAX IN SE CHAT!!! ` ` \ ` ` without spaces.
 
It was also an easy way of introducing lazily evaluated function calls
 
What people usually call lazy evaluation is when it evaluates the first time, and stores it after that.
 
3:46 AM
That combination of characters makes no sense.
 
@Downgoat Sure (unless it's specifically about physical engineering)
 
And we might have some plans for local propagation network-esque inversion
@feersum Sure but it can be used for that purpose
 
Lazy evaluation is when code is only run when it's needed. For example, Haskell is lazy and allows infinite lists, as long as you only operate on a finite range in that list.
 
@quartata How?
 
Ooh, and updating return values
 
3:48 AM
@Pavel Think anyone can out golf my quine?
 
Srsly tho what's the \ for?
 
@feersum What message is this in reply to?
 
@ATaco Dennis.
 
@Pavel Function calls
 
I fear not to be outgolfed by Dennis.
 
3:49 AM
@quartata But why \Rand() and not Rand()?
 
@quartata The one it's in reply to (which is the last one by you before it).
 
@feersum I can't see the reply indicator on mobie, sorry. Like this:
 
wat
@Pavel \
 
f <: \call(); ... f
 
Would adding function ever be useful? (despite limitations)
 
3:51 AM
@quartata In general, that only works if the compiler is psychic.
 
@Pavel It makes the functions easier to pick out in code
 
But... nothing does that.
Is this just to make writing the parser easier?
 
It won't be able to tell when the result doesn't need to be recalculated.
 
Match /\\.*\(.*\)/?
 
@feersum It recalculates in every evaluation if there are any non pure functions involved
@Pavel no
Although it would allow for multiplication by juxtaposition.
 
3:57 AM
@quartata That won't work with variables, which I'm guessing don't use \, and can be done with functions anyway since they're separated by ().
 
But how can I make it lazily evaluate only once, regardless of how the compiler assess functional purity?
 
@feersum By only referring to it once. It would never recalculate if it wasn't accessed.
@Pavel ??
If you mean storring a function in a variable you use backslash there too
 
I have a and b, I can't multiply them with ab.
 
What if I need to use it more than once though...
 
Oh right. Obviously then you need parens.
 
3:59 AM
I have a() and b(), you can multiply them with a()b(), since now there's a clear difference between them.
 
@feersum Then it might be better to make the return value of the function updating: instrad or something similar. It depends.
 
In Mathematica you'd do a b...
 
@Pavel Or... a b?
ninja'd
 
Oh yeah...
 
Or a(b)
 
4:00 AM
@quartata What if you aren't sure if the object will be a function? Like f = randBool() ? 55 : \myFunc
 
Static typing?
 
@HelkaHomba That's a type issue. If the type is known at compile you'd get an error then, otherwise at runtime. Pytek is gradually typed
 
What is gradual typing.
 
I don't see how that's any different than calling something that isn't a function in Python at any rate
 
@quartata As in you are gradually typing it as you code? :P
 
4:04 AM
@Pavel It means you can add type annotations that we'll check before run time, but if we can't figure it out we'll roll with it and check at run time. A hybrid between static and dynamic
 
Ah, like Cheddar.
 
No not lik Cheddar since Cheddar is purely dynamic
gradual strong structural manifest vs dynamic strong duck inferred
 
There is actually literally no need to specify types in Cheddar if you use :=
 
wat
i think cheddar is a bad name
it is too cheesy
 
4:06 AM
since without generics it's not possible to infer incorrectly
(which is not actually a good thing)
@Pavel That is all a runtime thing. Hence dynamic.
 
Ok. Got it.
Remind me to never deal with this.
 
You mean language design?
 
Not all language design. I'm designing a ><> like language named Sushi right now.
Just anything where you have to declare variables.
3 hours ago, by Pavel
Welp, that sounds complicated. I'm out.
 
Ah so you mean practical language design
 
Yes
 
4:10 AM
I think some of the most fun conversations I've had here have been about language design
 
Anonymous
Practical language design is fun, but it often leads to headaches
 
I think these conversations are fun
I just never actually want to implement any of this
 
Anonymous
Like trying to figure out how a decentralized distributed cooperative programming language would work
 
That meant nothing to me.
 
@Mego I've been thinking about what you brought up for quite a while to no avail. Decentralization is hard.
 
4:13 AM
@quartata have you entered Pytek into the time capsule?
@Mego Please explain every word in that sentence.
 
Anonymous
Decentralized - opposite of centralized, where one single computer/process/thread is the "main" thread
Distributed - involving multiple computational devices (threads, processes, CPU cores, GPU cores, even distinct computers)
Cooperative - the multiple devices working together to solve a problem
 
@Mego Like everyone contributes a snippet and somehow it all works together to do cool stuff?
 
@Pavel No partially because we have no idea if we'll have it done by the end of 2017
 
@wat this is not OK
 
Anonymous
@HelkaHomba Not cooperative in that sense. Cooperative in the sense that the multiple devices are working towards a common goal. Like BOINC, but without a central authority.
 
4:15 AM
@quartata It doesn't need to be done, it needs to have a relatively stableish implementation on TIO.
 
We intended to launch it with a complete stdlib, all transpilation backends complete, fully functional graphics library and a package manager. This was dumb of us.
 
Anonymous
I think a key feature that this language needs is the ability for computational instances to reject tasks
 
@quartata I launched cheddar with working addition and print statement
 
We're sticking to that though mostly because we've kind of entered valve time and no one really seems to care when it's released anyways
 
@quartata I care!
 
4:17 AM
@Downgoat We could have launched over a year ago in that case
 
Anonymous
Since tasks will be broadcast to all computational instances, it makes sense for an instance to be able to say "nah" and reject working on the task
 
Anonymous
...I should probably make a separate room for this
 
We tried making a separate SE for this.
It got closed
 
Also we saw how well your 1.0 release panned out. A good lesson.
(:P)
 
Anonymous
Someone catch that mic
 
4:18 AM
I wasn't around back then, what happened?
 
Anonymous
Cheddar's original release:
 
Anonymous
 
@quartata you're thinking of v0.1.0 release in which I called cheddar "release". v1.0 was only partially a complete disaster
but cheddar's v2 rewrite is going good except for goddam bison conflict
 
@Pavel Lots of broken things. To be fair he has good unit tests but they didn't catch everything
@Downgoat I seem to recall a lack of a while loop being a notable issue
 
nobody like while loop anyway
 
4:20 AM
for is fine.
 
If you're thinking of Go for <cond> is just a while loop anyways
 
for(;;) is golfier, anyway.
 
vihan:~/Documents/Code/Cheddar (develop) $ grep -rn src -e "while"
vihan:~/Documents/Code/Cheddar (develop) $
see nobody likes while loop
 
@Downgoat I find this incredibly hard to believe on many levels
 
Is print a statement or expression (in Cheddar or Pytek)
 
4:22 AM
Question: can someone give me a link to how to implement terminal, I am making iOS app which I need to reimplement terminal in
 
Function.
 
@HelkaHomba v1 it's an expression v2 it's a statement
 
@Downgoat You need to finish your everything else first
 
@Pavel ?
 
Your userscript still forgets the 'use in chat' setting on chrome instantly.
 
4:23 AM
that is chrome fault
 
Anonymous
Would one of the mods/ROs mind moving the relevant bits of this conversation to this room?
 
1001100 LET 1100=1100+300
1090 LET 1001100=1080
1100 PRINT 99;:PRINT " bottles of beer on the wall.":PRINT 99;:PRINT " bottles of beer.
You take one down, pass it around.":LET 99=99-1:PRINT 99;:PRINT " bottles of beer on the wall.": LET 1080=1080+300
99 Bottles.
Although when it gets to 0 it starts doing -1 bottles of beer on the wall.
It's a feature.
 
It doesn't work on TIO tho
 
Yeah, TIO doesn't like Infinite output.
 
@Downgoat I really wish Python came with both and not just one. Advice for Cheddar
 
4:25 AM
@HelkaHomba you mean print function and statement? or print statement and expression?
 
What's the difference between statement and expression?
 
Anonymous
@Pavel An expression evaluates to something (e.g. 1+2)
 
So my group apparently named our science project "β^θ ln(ξ) = d/dx (φσ/Ψ)"
it does not mean anything but it has greek letters
 
1001100 LET 1100=1100+300
1090 LET 1001100=1080
1100 PRINT 99;:PRINT " bottles of beer on the wall.":PRINT 99;:PRINT " bottles of beer.
You take one down, pass it around.":LET 99=99-1:PRINT 99;:PRINT " bottles of beer on the wall.": LET 1080=1080+300
30781 END
 
for i in team: is a better name.
 
4:26 AM
That stops at 0.
 
@Downgoat Function and statement (by expression I just mean calling the print function). Half the time I write print in Python 3 I forget the parens but sometimes in python 2 it's useful as a function. We need a print and a pront
 
pront.
 
ok well cheddar does have Console. functions for print functions
e.g. put for without newline. printf for format
 
Anonymous
@Downgoat Beta to the theta times natural log of xi equals the derivative of psi times delta over Psi with respect to x
 
The whole 'decrement 99' thing is just great
 
Anonymous
4:27 AM
So, the entire right side is just 1?
 
1001100 LET 1100=1100+300
1090 LET 1001100=1080
1100 PRINT 99;:PRINT " bottles of beer on the wall.":PRINT 99;:PRINT " bottles of beer.
You take one down, pass it around.":LET 99=99-1:PRINT 99;:PRINT " bottles of beer on the wall.": LET 1080=1080+300
30781 PRINT "0 bottles of beer on the wall.
0 bottles of beer.
You go to the store and buy some more.
99 bottles of beer on the wall."
30782 END
And that takes us to the store afterwards.
 
@Pavel O as in "OMG just print without requiring blasted parentheses"
 
@ATaco *clap* *clap* *clap*
 
I am a Forte master.
 
Maestro
@ATaco Now solve the 'add two numbers' challenge
 
4:33 AM
On it boss.
 
Without anything breaking
I've been thinking of a good way to shield INPUT against user stupidity, I can't think of a good way.
 
You've got me there
HMmMMmMmMm.
 
It might not be possible
 
4:41 AM
I'm sure there's a way.
 
Well, you probably need two variables, right? You have to prevent the user linking them together.
 
You'd think.
 
It might be doable in unary
Unary output, decimal input
Maybe parsing it with GET? The actual implementation of GET is poorly specified.
 
Good luck Parsing anything with GET.
 
Yep.
 
4:52 AM
Technically valid.
That number is a 64bit integer, we don't need to support any greater than 32bit
 
I thought it was 'default number type'
Ok
 
It says "Decimal Integer"
 
That means it's a base 10 int.
Doesn't say anything about size.
 
Alas, Int32 Bullshittery wont work.
 
I'll ask if there's a maximum int size that needs to be supported.
 
5:17 AM
0
Q: Quote-Safe Quines

Challenger5Your task is simple: write a program (or function) that takes no input and outputs (or returns) its source code. The catch is that when the program is wrapped in "quotes", it should again output its (now quoted) source code. Standard rules for quines apply. This is code-golf, so the shortest pro...

 
wat
6:00 AM
This whole set of messages is hilarious
(did that to prevent oneboxing)
 
 
1 hour later…
7:20 AM
@flawr ais523 could probably provide more tips than myself
 
7:47 AM
@ChristopherPeart I don't have OCD. I can assure you that I, in fact, do experience feelings. You don't really want to know what I'm going through nor do I really want to tell you. No offence taken.
 
 
1 hour later…
8:56 AM
@Pavel there are two input commands; INPUT inputs an integer (and is probably unusable if you don't have a lot of control over your input), GET inputs a character, this is what the spec says
 
9:07 AM
0
A: Sandbox for Proposed Challenges

steenberghIs this word Lexically Ordered? Given an input string S, return truthy if all the letters in S are Lexically Ordered: their ASCII values need to be in either ascending or descending order. Return falsy in other cases. Input Input will be in the same case (all upper- or all lowercase) Input wi...

 
 
1 hour later…
10:27 AM
1
Q: The beautiful pattern drawer (Little cubes included)

SygmeiThe beautiful pattern drawer Good morning PPCG ! The other day, when I was trying to help someone on Stack Overflow, a part of his problem gave me an idea for this challenge. First of all, check the following shape : Where all black numbers are the index of the points in the shape and all d...

 
11:13 AM
0
Q: The competition

futurengineerThe Sensitive Society Club organizes a donation campaign. To put more fun in the campaign, they organize a competition among departments. In the competition top donating students and the department are awarded with a certificate. Question: Write a program that reads the information for n student...

 
11:23 AM
@muddyfish OK thanks
I guess some people care more about styling in code. I used to not. Then I was taught how to style it one way and liked it ever since.
@ATaco @Nice job! That was very well done!
 
11:38 AM
@ChristopherPeart I care about the style of languages where I know the correct style. If I don't know a language, I assume the style guidelines are different
 
Hallo
 
12:18 PM
Wait, Firefox don't support ttf fonts?
 
 
2 hours later…
1:58 PM
quartata's statement here followed by ATaco's immediate "There's a[n OEIS] sequence for that" made me chuckle. Apparently there's an OEIS sequence for everything.
 
2:12 PM
We got called out on the Official Blog!
> official graduation is long-awaited accomplishment. link
 
Still no word on the design though…
 
@AdmBorkBork Yeah the typo kinda killed that one
 
That typo is mistake.
 
2:28 PM
what typo?
 
It's missing the article.
 
read the quote again
 
Maybe he was just golfing the sentence?
 
I don't think it really needs an article
 
> graduation good
Did a pretty bad job of it if so
 
2:33 PM
> grad yay
 
> English, 8 bytes
 
> grad :D
 
waiting for 3-byte Jelly solution from Dennis :p
 
"Long-awaited" is modifying "accomplishment" so that can be removed. Then it reads "official graduation is accomplishment." However, the word "accomplishment" can't be turned into an adjective like it is there.
It's not a bad typo, in that it changes the meaning or anything, though.
 
it's not an adjective at all
 
2:37 PM
Correct - which is why it needs an article.
 
well, "this is great news"
 
hi all
been a while!
 
@aditsu That's because "news" is an uncountable noun, which doesn't require an article, while "accomplishment" is a countable noun, which does.
 
i have an idea for a golf challenge, but i dunno if it's a good one
 
1
A: Sandbox for Proposed Challenges

12Me21Find the smallest text file Goal: Find the smallest* text file in the current folder. Rules: Input: None** (uses current folder) Output: Name of the smallest file. (you can't just print a list of all the files) Standard loopholes are not allowed. *Filesize can be measured in characters o...

 
2:48 PM
i'm going to sandbox it
 
@AdmBorkBork dictionaries say "accomplishment" can be uncountable
 
Yes, but not in this context.
 
What kind of dictionary would say that?
 
Oxford uses the example sentence "a poet of considerable accomplishment."
Which is indeed an uncountable noun in that context.
 

« first day (2190 days earlier)      last day (2636 days later) »