« first day (2186 days earlier)   
00:00 - 11:0011:00 - 17:00

11:07 AM
From my understanding it nests the old number in another level of f(x)
So I want to put in a church numeral, say 1 (which is λf.λx.f x)
Where do I put it in
@TuxCopter Halp if you know the answer?
11:26 AM
@Qwerp-Derp You just apply the successor function to the numeral: (λn.λf.λx.f (n f x)) ( λf.λx.f x) so you "put it in" n: λf.λx.f (( λf.λx.f x) f x) which reduces to λf.λx.f (f x) which is 2.
Oh cool
Wait where does the beginning λn go
A: Sandbox for Proposed Challenges

Stewie GriffinCreate an interpolation helper This is similar to this other proposal of mine. I won't delete that one since it has gotten good feedback, and I might come back to it. I think maybe this one is better. If this one is posted then I'll delete the other one (they will almost be duplicates. A polyno...

Looking at the SO dev survey
Coffeescript is dying, it's slowly getting replaced by ECMAScript6 probably
@Qwerp-Derp I see you got your question answered!
Kinda, I'm wondering how Laikoni's thing works
Cause I understand you replace n with your Church numeral
But how does the beginning λn get removed
11:40 AM
That's how you apply a lambda term.
So is this how it works?
= λfx.f((λfx.fx)fx)
= λfx.f(fx)
No. Laikoni applied the successor term to 1. Your first line is missing that.
= λfx.f((λfx.fx)fx)
= λfx.f(fx)
So like that right?
Ah I understand now, cause the two things in Laikoni's post looked like two separate things and I got confuse
You'd have to write it (λnfx.f(nfx))(λfx.fx)
11:52 AM
Oh so like a function call right
That's true, the scope of a lambda reaches as far right as possible, so you need parens around the successor function.
= (λnfx.((λfx.f(fx))f(nfx))(λfx.f(fx))
What's the next stage?
@Qwerp-Derp You might need some α-conversion for that
(i.e., change your variable names to avoid conflicts)
Which variable names do I change
The ones in the second function (the number)
11:57 AM
But yeah, that's why I use de Bruijn indices whenever I lambda calculus :P
So something like this?
= (λnfx.((λfx.f(fx))(f(nfx)))(λfx.f(fx))
= (λnfx.((λgy.g(gy))(f(nfx)))(λfx.f(fx))
I changed it to g and y
idk, just change all the variable names to something different
But I want to solve the inner thing first
Do I just sub in g for the f outside it?
Lemme figure it out
11:59 AM
Chance all the names right at the start. Makes things easier.
@Qwerp-Derp The parents around (f(nfx)) are wrong as far as I can tell
Is this valid alpha-conversion?
= ((λmnfx.mf(nfx))(λab.a(ab)))(λcd.c(cd))
I think I haven't changed anything vital
@LegionMammal978 De Bruijn indices?
Show me
= (λλλλ42(321))(λλ1(12))(λλ2(21))
= (λλλ(λλ1(12))2(321))(λλ2(21))
= (λλλ(λ1(13))(321))(λλ2(21))
= (λλλ321(3212))(λλ2(21))
= (λabc.abc(abcb))(λde.d(de))
Pretty much, you replace each variable by its index on the stack
So is this not solved yet?
12:03 PM
@Qwerp-Derp seems right to me
> = (λabc.abc(abcb))(λde.d(de))
And then I sub in the final function?
> = λfx.f(fx)(f(fx)f)
@LegionMammal978 I think this is right:
= λλ(λλ2(21))21((λλ2(21))212)
@LegionMammal978 Why are the indices of the last two terms on the second line different?
12:07 PM
@Zgarb ???
Oh noes, I messed up
Is this right?
= (λλλλ42(321))(λλ2(21))(λλ2(21))
= (λλλ(λλ2(21))2(321))(λλ2(21))
= (λλλ2(2(321)))(λλ2(21))
@Qwerp-Derp Yes.
Orrite I think I got it
= (λλλλ42(321))(λλ2(21))(λλ2(21))
= (λλλ(λλ2(21))2(321))(λλ2(21))
= (λλλ2(2(321)))(λλ2(21))
= (λλ2(2((λλ2(21))21)))
= (λλ2(2(2(21))))
= (λλλλ42(321))(λλ2(21))(λλ2(21))
= (λλλ(λλ2(21))2(321))(λλ2(21))
= (λλλ(λ3(31))(321))(λλ2(21))
= (λλλ2(2(321)))(λλ2(21))
= λλ2(2((λλ2(21))21))
= λλ2(2((λ3(31))1))
= λλ2(2(2(21)))
= λfx.f(f(f(fx)))
12:11 PM
Wait, you have an extra λ at the start
You didn't β-reduce correctly, shame on you
What is this function supposed to do, again?
Oh, it's addition
So λλλλ42(321) is add, and λλλ2(2(321)) is add2?
Ima try and figure out an infinite Church stream of λ1s now
Hmm, it comes down to finding a function f that obeys the following:
f(λλ2)      = λλ1
f(λλ1)(λλ2) = λ1
f(λλ1)(λλ1) = f
12:40 PM
There, figured it out
f = (λλ1(λλ1)(λ1(λ1)(33)))(λλ1(λλ1)(λ1(λ1)(33)))
Really, you can make an infinite stream of anything by replacing (λ1) with the appropriate value
Friendly reminder that voting for the Best Of will end in a bit over 11 hours.
hmm, I should add Church numerals to my SKI thing
anyway, 0 = KI and increment = S(S(KS)K)
aka successor
1:10 PM
@MartinEnder That took me a while to read. My brain ignores every single-line bold message in chat, because they are usually just timestamps.
1:29 PM
Q: Find a Glider Synthesis (Game of Life)

Alex L.Challenge Summary In summary, the challenge is to provide the glider synthesis for a Game of Life configuration, which is your input. What does this mean? Well, firstly, let me explain a few terms. By Game of Life, I mean Conway's Game of Life. If you don't know what this is, you can read t...

1 hour later…
2:31 PM
alright guys we have 9 hours to upvote my entry to the kansas city shuffle another 12 times
2:47 PM
codegolf.stackexchange.com/a/4491/60884 As someone who doesn't do C, would main(){puts("2012"=="2012"?"2012":"2012");} also be valid?
A: Sandbox for Proposed Challenges

milesAvoiding Averages Given a non-empty list of positive integers, reorder the list such that for every pair of indices, the average of the values at those indices is not contained in any index between them. Rules This is code-golf so the shortest code wins.

Couldn't you change that to main(){puts("2012"=="2012"?"20512":"2012");}and have it print 20512?
oh right
I feel dumb now
Did the MathJax bug with code blocks and search results ever get fixed?
3:04 PM
@Mego i bellieve so
Can't find link however
@200_success Delimiters changed. Enjoy! — Pops ♦ Apr 7 '14 at 19:47
3:27 PM
I think it's pretty funny that my RSA cop posts were super controversial, but people liked the robber's posts @Sp3000
@GabrielBenamy you can't compare strings with ==
I'm pretty sure liking is equivalent to starring things here.
that is, not generally
it compares the address of the string
but nothing prevents the compiler from putting one string in a different location than the other
3:39 PM
I wondered why my browser ran out of memory when I tried to change my twitter avatar, until I noticed that I rendered my avatar as a 15,000 px² image.
3:59 PM
@mınxomaτ even then that's still only ~650 mb uncompressed, assuming 24bpp
My laptop has 2GB of RAM.
4:20 PM
Does it work properly
@mınxomaτ My sister's laptop is ALMOST the same as mine
except it has 2gb RAM instead of 4GB
and a slightly slower CPU
@NewMainPosts are we for real right now
Should I make a question about twitter snowflakes
@quartata I know that's a dupe of something
Yeah, it's called "Hello, World!".
4:31 PM
I don't know if I'd close it as a dupe of HW
A challenge that was also "print this thing N times" would be better
WHy do things get closed as duplicates of:
a. Hello world
b. Never gonna give you up
Because they were the first constant output challenges
Even though some of the outputs are completely different and can be optimized in different ways...
I can't find a "repeat this N times separated by newlines" challenge to use as a dupe target, though I'm sure we've had one
@wat There's no real structure to this one that can be exploited
4:42 PM
Huh, the TDM-GCC branch of DevCpp surpassed 10 million (took them 6 years) downloads this year.
aside from regular deflate compression
and having a goat printing built-in for some inane reason
@quartata That's true I guess
Because goats are funny!!!!11!1
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.
00:00 - 11:0011:00 - 17:00

« first day (2186 days earlier)