←2008-01-24 2008-01-25 2008-01-26→ ↑2008 ↑all
00:00:27 <olsner> apache doesn't handle the case of looping rewrites very well... I don't know how to abort runaway requests in apache
00:01:24 <Slereah> ``m``b`s``c``c`tk.1r``c``bbm``s``bv`t0``s``c`tk`sb`t0``v0i
00:01:35 <Slereah> It is a lot faster for some reason!
00:05:00 <faxathisia> OK
00:05:18 <faxathisia> I run through another problem with this algorithm http://pastey.net/81239
00:05:43 <Slereah> "! Win"
00:05:45 <Slereah> Heh.
00:05:53 <faxathisia> I think it can solve any solveable problem
00:06:10 <faxathisia> But will never terminate for impossible problems
00:06:32 <Slereah> What, so you can't solve the halting problem?
00:06:36 <Slereah> You slacker!
00:06:39 <faxathisia> sorry :P
00:09:23 <Slereah> I should make a small list of lambda expressions to short combinators.
00:09:27 <Slereah> Might be useful
00:09:57 <faxathisia> I would really like a BFS prolog
00:10:06 <Slereah> Like ^a.a, ^a^b.ab, ^a^b.aa, ^a^b.bb, and so on.
00:10:10 <Slereah> BFS?
00:10:21 <faxathisia> I shall try to see if I can trick kanren into doing it for me
00:10:29 <faxathisia> breadth first search
00:10:50 <faxathisia> My algorithm would be miserable in depth first
00:17:15 <ehird> #ninjacode! the only native-code compilation, REPL-based, concatentative esolang!
00:20:21 <Slereah> Does Ninjacode flips out ALL THE TIME?
00:20:41 <ehird> Yeah
00:20:46 <ehird> Then you have to use the debugger.
00:21:54 <Slereah> Hm. My ski-bc abstractor doesn't seem to accept stuff like ^a ^b aaaaa...
00:22:06 <Slereah> There's an infinite loop apparently
00:23:14 <Slereah> Let's try by hand
00:24:17 <RodgerTheGreat> pikhq: dude, the chans declared war on scientology!
00:24:18 <RodgerTheGreat> http://video.google.com/videoplay?docid=-2547253292326096449
00:24:24 <ehird> RodgerTheGreat: old news
00:24:24 <RodgerTheGreat> GO, ANONYMOUS! GO!
00:24:36 <RodgerTheGreat> still frickin' awesome
00:24:41 <RockerMONO> hi RodgerTheGreat
00:24:52 -!- eagle-101 has joined.
00:24:55 <pikhq> RodgerTheGreat: When it hits Slashdot, it's officially old news.
00:25:03 <Slereah> I'm waiting though.
00:25:13 <Slereah> Anonymous gets easily sidetracked
00:25:19 <Slereah> Especially when it's not working too good.
00:25:25 <eagle-101> Hi, I'm looking for a version or an extension of brainfuck that can do networking, does any such version exist?
00:25:34 <RodgerTheGreat> yeah, the power of a steaming locomotive and the attention span of a gnat
00:25:40 <Slereah> Though they stuck to Hal turner for quite a long time
00:25:50 <pikhq> eagle-101: Be sure to prod Sgeo into finishing up PSOX.
00:25:58 <olsner> (Does Brainfuck over HTTP count? :P)
00:26:02 <Slereah> Well, actually, they're pretty much like a swarm of locust.
00:26:22 <eagle-101> olsner, I suppose, if it is able to keep a socket open. (or the brainfuck equivalent)
00:26:30 -!- Corun has quit (Read error: 110 (Connection timed out)).
00:26:34 <Slereah> Not the locomotive power, but they've got number power
00:28:08 <ehird> Slereah: Not in raids
00:28:15 <ehird> anonymous has never given up on a raid
00:29:59 -!- olsner has quit (Remote closed the connection).
00:31:25 -!- slereah_ has joined.
00:31:25 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
00:31:51 <slereah_> The three transformation rules for ^x.ab assume that a or b is free, but in ^a^b`aa, there's a case where nothing is
00:32:15 <slereah_> Either I say that neither means ST[]T[], or I use a fourth rule
00:33:10 -!- slereah_ has changed nick to Slereah.
00:37:13 <Slereah> Hm. It would be some combinator Xxy = ^z.xy
00:37:23 <Slereah> So... ^x^y^z.xy
00:37:56 <Slereah> Well, I think at least.
00:38:02 <oerjan> why should freeness matter? provided you do transformation innermost first
00:38:31 <Slereah> Well, it apparently matters for a transformation into skibc
00:38:40 <Slereah> Says Wikipedia, at least
00:39:15 <Slereah> It's not in Lazy Bird, but I still use that program a lot
00:39:29 <oerjan> the only thing that matters in ^x.ab is whether a or b contain x
00:39:36 <Slereah> Shorter programs are important in that turtle that is lazy bird
00:39:39 <Slereah> Lazy indeed!
00:39:55 <Slereah> Isn't that freeness?
00:39:58 <Slereah> Freedom.
00:40:09 <oerjan> freeness with respect to other bindings is irrelevant
00:40:31 <Slereah> Well, yes
00:40:35 <oerjan> so in ^a^b`aa, the fact that a contains a only matters after the ^b part
00:40:56 <Slereah> Well, at one point, you get this :
00:40:57 <oerjan> ^a^b`aa -> ^a`K`aa
00:41:18 <Slereah> T[^a.S(Ka)(Ka)]
00:41:33 <Slereah> Wait.
00:41:39 <Slereah> What am I saying.
00:41:41 <Slereah> Aaaargh
00:41:45 <Slereah> My head is confused
00:42:04 <Slereah> It is free!
00:42:18 <Slereah> That doesn't solve my problem though, why is there an infinite loop?
00:43:24 <oerjan> -> ``BK``SII, iirc
00:44:20 <Slereah> It apparently gets stuck when analysing ^b`aa
00:45:00 <oerjan> it doesn't recognise the K case properly?
00:45:34 <Slereah> Oh.
00:45:53 <Slereah> It treats everything longer than one combinator as a product
00:46:13 <oerjan> ah
00:46:32 <Slereah> I should add that special case to the product rule.
00:46:41 <Slereah> For no free variable
00:47:16 <Slereah> Although wouldn't that some ^x^y^z`xy also work?
00:47:38 <oerjan> -> ^x^y`K`xy
00:48:22 <Slereah> The idea would just be to make the expression shorter.
00:48:36 <Slereah> Although I'm not sure it would
00:48:41 <Slereah> Hm.
00:48:54 <Slereah> No, I guess not.
00:49:49 -!- sebbu has quit ("@+").
00:49:58 -!- GregorR has joined.
00:51:58 <Slereah> I get back k for ^a^b`aa
00:52:01 <Slereah> Hm
00:52:33 <Slereah> Oh, I forgot a `
00:52:48 <Slereah> ``bk``sii
00:52:49 <Slereah> There
00:54:46 <Slereah> Hm. Thinking about it now, I might have some problem if I use .[name of a variable]
00:55:06 <Slereah> Since I use a hamfisted "variable name in string" to check for freedom
01:00:39 <Slereah> Apparently it doesn't seem to be a problem!
01:01:02 <Slereah> I have that "What did that guy write" feeling again.
01:08:41 -!- immibis has joined.
01:15:45 <RockerMONO> hi
01:21:45 -!- immibis has left (?).
01:22:22 <RockerMONO> Slereah: what exactly are you workin on, by the way?
01:23:05 -!- ehird has quit ("Leaving").
01:24:07 -!- slereah_ has joined.
01:24:24 <RockerMONO> hi slereah_ i'm guessing you missed what i just said? =P
01:24:35 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
01:25:41 * RockerMONO wonders if anyone is here >.>
01:26:07 <oerjan> BRAINS...
01:26:27 <RockerMONO> hi oerjan, a zombie, i see ;)
01:27:34 <pikhq> Hello, my good Zombie. -- From the Desk of Pikhq, Minister Without Portfolio.
01:27:54 <RockerMONO> YAY ANOTHER ZOMBIE!
01:28:00 * RockerMONO pokes the zombies and wonders what they'll do
01:29:01 * pikhq wields his Rubberstamp on Oerjan
01:29:09 -!- slereah_ has quit (Remote closed the connection).
01:29:23 <RockerMONO> oh noes slereah died again :<
01:29:24 -!- slereah_ has joined.
01:29:44 <slereah_> So, what did you say!
01:29:50 <RockerMONO> hi again lol
01:30:02 <slereah_> Connexion with a halting problem.
01:30:16 <RockerMONO> and i was asking what it was you've been working on for what appears to be the whole time i've been here =P
01:30:28 <RockerMONO> :< ow
01:30:40 <RockerMONO> <random> i just sneezed so hard i fell out of my chair </random>
01:30:42 <RockerMONO> >.>
01:31:03 <slereah_> RockerMONO? More like ROCKETSNEEZE
01:31:12 <RockerMONO> haha
01:31:26 <RockerMONO> >.>
01:31:33 <oerjan> AGORA BRAINS...
01:31:34 <slereah_> (It's Lazy Bird : http://www.esolangs.org/wiki/Lazy_Bird )
01:31:35 * RockerMONO gives up on converting this brainfuck parser and starts from scratch
01:58:29 <pikhq> Brainfuck parsing is braindead-easy. . .
01:58:51 <pikhq> You have 8 tokens.
01:58:56 <pikhq> Each token is a single char.
01:58:59 <pikhq> There's your lexer.
01:59:26 <pikhq> BEGINLOOP and ENDLOOP nest.
01:59:29 <pikhq> There's your parser.
02:01:22 <RockerMONO> pikhq: i'm doing it in C++... which i'm like a 100% noob at.... fun =P
02:02:40 <pikhq> Fine. Let's make this simple. . .
02:03:58 <pikhq> switch(input_char){'+':'-':'[':']':'.':',':do_stuff;break;}
02:04:00 <pikhq> Your lexer.
02:04:19 <pikhq> Parsing and lexing Brainfuck is the easiest thing in the world.
02:04:34 <pikhq> (except perhaps dc)
02:05:14 <oerjan> a _separate_ lexer? for _brainfuck_?
02:05:28 <pikhq> oerjan: Fine, it's stupid.
02:05:55 <pikhq> But the point is, Brainfuck is so damned syntactically simple that you don't need to work hard to parse it.
02:06:34 <pikhq> When you've got 8 single-char tokens to deal with, there's not all that much to parse.
02:08:44 <RockerMONO> pikhq: the layout of the parser is simple, the base of it is simple, getting all of the characters handled separately is simple.... knowing how brainfuck is parsed in terms of how the data's manipulated... not so much =\
02:37:42 -!- immibis has joined.
04:06:24 -!- calamari has joined.
04:08:21 -!- uvanta has quit ("blame!").
04:19:18 -!- eagle-101 has quit (Read error: 104 (Connection reset by peer)).
04:19:41 -!- eagle-101 has joined.
04:22:54 -!- immibis has quit ("Hi Im a qit msg virus. Pls rplce ur old qit msg wit tis 1 & hlp me tk ovr th wrld of IRC. It's a dud! It's a dud! It's a du..).
04:29:54 <pikhq> oerjan: Are you aware of any FRC round which removed all fantasy rules?
04:31:46 <oerjan> i don't remember that, but i think there was one with a temporary ordinance to allow repeals
04:32:16 <oerjan> this is very vague though
04:33:31 <pikhq> FRC round 256, former rule 1 (submission 23): Repeal all fantasy rules. This rule repeals itself.
04:33:48 <pikhq> Netted me 0.5 style points.
04:34:56 <oerjan> is this in the last days?
04:35:30 * oerjan hasn't looked at frc for so long he didn't even know if it was still alive
04:35:40 <pikhq> That was a few days ago.
04:35:46 <oerjan> yay!
04:36:11 <pikhq> It recently got a fairly big kick in participation, when the Fantasy Rules Contest of Agora was created, awarding participation in the Commission.
04:36:37 <oerjan> "Committee"
04:36:42 <pikhq> Sorry.
04:36:54 <pikhq> I always think Commission when it's a Committee.
04:37:08 * pikhq is also proud of the second submission of FRC 256. . .
04:37:56 <pikhq> "Each fantasy rule submitted after this one must consist of rules that are known to have been reasonable in other, long-term, online Nomic games. A source for the rule must be given in the submission of the rule."
05:43:27 <RodgerTheGreat> pikhq: you know you need to then leverage that to work in a spicerack
05:52:31 * pikhq shall stick a Spicerack on the board
05:52:36 <pikhq> (that fantasy rule was repealed)
06:08:02 -!- calamari has quit ("Leaving").
06:28:16 -!- oerjan has quit ("leaving").
06:33:11 <bsmntbombdood> heh
06:33:30 <bsmntbombdood> oklopol was talking about dimmu borgir, and i was making fun of him for it
06:33:39 <bsmntbombdood> but then i listened to some and now i really like them :P
07:26:00 <oklopol> mwahahaha :)
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:35:50 -!- eagle-101 has quit (Read error: 110 (Connection timed out)).
09:07:03 -!- EgoBot has joined.
10:58:46 -!- helios24 has joined.
11:04:21 -!- faxathisia has quit ("If there are any aliens, time travellers or espers here, come join me!").
11:18:15 -!- [o_O] has joined.
11:27:51 -!- danopia has quit (Read error: 101 (Network is unreachable)).
11:38:53 -!- [o_O] has changed nick to danopia.
12:30:06 -!- slereah_ has quit (Read error: 104 (Connection reset by peer)).
12:31:53 -!- slereah_ has joined.
13:14:58 <slereah_> ````s``bb``bs``cc`.0i``s``bs``b`bs``c``bc``b`bc``c``bbbi`.1i``s``bs``b`bs``c``bc``b`bc``c``bbb``sbi`.2i``s``bs``b`bs``c``bc``b`bc``c``bbb``sb``sb``cbi`.3i``s``bs``b`bs``c``bc``b`bc``c``bbb``sb``sb``sbi`.4i``s``bs``b`bs``c``bc``b`bc``c``bbb``sb``sb``sb``sbi`.5i``s``bs``b`bs``c``bc``b`bc``c``bbb``sb``sb``sb``sb``sb``cbi`.6i``s``bs``b`bs``c``bc``b`bc``c``bbb``sb``sb``sb``sb``sb``sbi`.7i``c``bc``b`bc``c``bc``b`bc``c``bbb``sb``s
13:14:58 <slereah_> b``sb``sb``sb``sb``sbi`.8i`.9i``c`t`k0k``c``bc``b`bc``c``bc``b`bb``cb``b`bttki
13:15:08 <slereah_> Finally some Church-to-char!
13:15:12 <slereah_> Maybe now 99!
13:39:36 -!- slereah_ has quit (Remote closed the connection).
13:40:45 -!- MommeMC has joined.
13:42:10 -!- jix has joined.
13:45:18 -!- Corun has joined.
14:10:30 -!- faxathisia has joined.
14:12:57 -!- Slereah has joined.
14:13:13 <faxathisia> Hi Slereah
14:14:04 <faxathisia> I worked so hard to code that idea I had but it doesn't work -_-
14:16:20 <Slereah> I'll try cooking something up
14:17:47 <Slereah> Hm. The problem would be evaluating the expression before applying it to the delta operator
14:18:03 <Slereah> Otherwise, I'd have to solve the halting problem
14:18:05 <faxathisia> ...delta :O
14:18:20 <Slereah> Delta.
14:18:26 <faxathisia> that makes we realize.. I did alpha and beta
14:18:32 <faxathisia> not eta :S
14:18:34 <Slereah> [delta x] x -> True
14:18:40 <Slereah> [delta x] y -> False
14:19:39 <Slereah> 't'was used in "System of logic based on ordinals" by Turing and I thought it might come in handy.
14:20:03 <Slereah> Though Turing's version was 1 and 2 instead of true and false
14:37:27 <Slereah> `^v^w^x^y^z``wz``&xy```w`vz``&`xa`ya`.bi``c``bc``b`bc``c``bc``b`bb``cb``b`bttki
14:37:34 <Slereah> Damn thing won't eliminate correctly
14:37:36 <Slereah> Yarrr
14:37:40 <faxathisia> :(
14:37:58 <faxathisia> I'm going to try again tommorow
14:38:25 <Slereah> There's x's and y's remaining in the output
14:39:01 <Slereah> I think I misplaced some `
14:41:23 <Slereah> Well, it parses. But doesn't work even for only one operator
14:41:36 <Slereah> It tries to compare s with `is
14:41:53 <faxathisia> my solver worked for really easy problems
14:41:57 <Slereah> And since delta only works to an alpha conversion, no dice
14:42:46 <Slereah> Got to find a way to evaluate everything first.
14:43:18 <Slereah> And that & never has more than one ` before it until it is evaluated
14:43:53 -!- Hiato has joined.
14:44:25 <Hiato> Hello all, I am back (with a vengeance :P )
14:44:40 <Slereah> But do you also DIE HARD with it?
14:44:54 <Hiato> heh, lol, hopefully not
14:45:40 <Slereah> We're trying to solve the halting problem!
14:45:47 <Slereah> But, you know, only little ones.
14:46:09 -!- Corun has quit ("This computer has gone to sleep").
14:46:22 <Hiato> The reason that I was away for soooo long was this: I broke and dislocated my fifth finger on my right hand at cricket practise a while ago and thus was unable to type. As a sign that I still existed, I uploaded the ACRONYM spec, which oerjan so kindly fixed. But now, my finger is getting better and the pin should come out in about a month, so I am back :P
14:46:36 <Hiato> Heh, lol, can I help?
14:46:41 <faxathisia> oww
14:46:48 <Hiato> indeed
14:47:01 <Slereah> We're trying to devise a program to check if two lambda expressions (or combinators) can convert to each other
14:47:21 * faxathisia wrote loads of code, then ran it to discover.. It didn't work
14:47:22 <Slereah> For some class of expressions at least, since the general problem is undecidable
14:47:42 <Hiato> hrmm.. I must say: I have no idea how Lambda Calculus/Unlambada/Mocking Bird works....
14:47:59 <faxathisia> I imagine it's possible to terminate for every one with a solution
14:48:14 <Slereah> Hiato: It's not that hard.
14:48:22 <Slereah> Though it is unwieldy.
14:48:27 <faxathisia> but not terminate for all (or at least some) of the unsolveables
14:48:35 <faxathisia> (It *is* that hard! :P)
14:48:51 <Hiato> heh, for my benefit, I'll listen to Slereah
14:48:54 <Hiato> :P
14:49:12 <Slereah> Well, when mixing lambda with combinators, I can really just use it as function-calling.
14:49:16 <Hiato> Should I start at unlambada? Or somewhere else
14:49:41 <Slereah> I use every variable of a lambda expression as a function, that way it's easier.
14:50:00 <Hiato> ok
14:50:11 <Slereah> And since the program will translate it into pure combinators, I can then pretend to be awesome by posting it!
14:50:52 <Hiato> :)
14:50:59 -!- ehird has joined.
14:51:26 <Slereah> The biggest problem seems to be evaluation.
14:51:47 <Slereah> I can see why there's a d in unlambda.
14:52:12 <Slereah> Only one mode of evaluation can pose problems.
14:52:49 -!- ehird has set topic: TOPIC NOSTALGIA! (topic from 9999/12/31) And AC said, "LET THERE BE LIGHT!" And there was light-- TOPIC NOSTALGIA! (topic from 0001/01/01).
14:53:16 <ehird> ^ proof that the universe uses finite, wrap-around integers ^
14:53:39 <Hiato> heh :)
14:53:53 -!- puzzlet has quit (Remote closed the connection).
14:54:01 -!- puzzlet has joined.
14:54:15 -!- eagle-101 has joined.
14:55:11 <ehird> (also, i win for referencing a previous topic, quoting isaac asimov, and applying computational things to the universe -- IN ONE TOPIC)
14:55:59 * Hiato is impressed, with all that multi-tasking ability, ehird` might just be a CPU -- or a women
14:56:04 <Hiato> just pulling your leg
14:56:06 <Slereah> You are false data, and therefor I shall ignore you
14:56:07 <Hiato> :P
14:56:19 <ehird> I don't think anybody is a women. It's hard to be more than one thing.
14:56:28 <Hiato> lol :D
14:56:32 <faxathisia> Here is a great deal of rubbish http://mishu.eu.org/paste/view.php?id=7012
14:57:16 <ehird> Error from `bin/source-highlight --src-lang cpp --out-format xhtml`
14:57:16 <ehird> bin/source-highlight: error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory
14:57:17 <Hiato> faxathisia: say wha...
14:57:20 <ehird> lol lol lol lol lol lol
14:57:22 <ehird> :)
14:57:30 <ehird> Remidns me that I need to write that pastebin... sometime...
14:57:36 <ehird> After I write my web framework in Haskell, of course!
14:57:49 <faxathisia> Hiato.. that was supposed to solve all my problems :(
14:58:00 <Hiato> naturally, is that before or after world domination, ehird
14:58:07 <ehird> before
14:58:15 <Hiato> aha, thanks
14:58:20 <ehird> world domination will involve spreading the word through my webmonad-powered site
14:58:38 <ehird> yes, webmonad. i'm tired of all these m'fn window managers on this m'fn language
14:58:39 <Hiato> ooh, well tried though faxathisia, but I can say that it is far to short to solve any problems let alone all :P
14:59:04 <Hiato> heh, sure, I'm not gonna get in your way :P
14:59:52 <Hiato> well, considering that there is a window manager written in *HASKELL*, perhaps it would not do you harm to use it :P
15:00:10 <ehird> the wm is called xmonad
15:00:16 <ehird> why do you think i'm calling my WF webmonad :)
15:00:32 <Hiato> aha, woops ... erm.. tralalalalala
15:00:55 <Hiato> just pretend that I was remote exploited there, and it was actually someone else...
15:00:58 <Hiato> :P
15:02:05 -!- Corun has joined.
15:02:08 <ehird> faxathisia: You use Haskell don't you? COMMENT ON WEBMONAD'S AWESOMENESS :P
15:02:36 <Hiato> Haskell offers you: Substantially increased programmer productivity (Ericsson measured an improvement factor of between 9 and 25 using Erlang, a functional programming language similar to Haskell, in one set of experiments on telephony software). Shorter, clearer, and more maintainable code. Fewer errors, higher reliability. A smaller "semantic gap" between the programmer and the language. Shorter lead times.
15:02:36 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
15:02:36 <Hiato> from http://www.haskell.org/haskellwiki/Introduction
15:02:57 <ehird> Hiato: yes, that's haskell
15:03:06 <faxathisia> I'm far too depressed to be enthusiastic in even the most monadic web framework
15:03:08 <Hiato> Great :)
15:03:15 <ehird> fact n = product [1..n] -- obligitary factorial example ;)
15:03:18 <ehird> faxathisia: :(
15:03:20 -!- Slereah has joined.
15:04:03 <Slereah> >:|
15:04:37 <ehird> Hiato: this produces an *infinite* list of all the fibonacci numbers:
15:04:38 <ehird> fibs = 0 : 1 : zipWith (+) fibs (tail fibs)
15:05:02 <ehird> and yes -- this actually terminates. You can do (fibs !! 5) to get the 5th fibonacci number (!! is the list index, like list[i] in other languages)
15:05:06 <Hiato> wicked :), but seeing as it is functional, that doesn't actually matter right
15:05:21 <ehird> Hiato: you can actually type 'fibs' into the prompt and see all the fibs go by
15:05:27 <Hiato> w00t
15:05:34 <ehird> the 0 : 1 : stuff is like Lisp lists, [1,2,3] is actually 1:(2:(3:[]))
15:05:39 <ehird> i.e., a linked list
15:06:09 <ehird> "zipWith func lst1 lst2" where lst1=[1,2,3] and lst2=[2,3,4] is [3,5,7]
15:06:42 <ehird> so: since we take the fibonacci numbers as the first argument, and the fibonacci numbers sans the first
15:07:01 <Hiato> ehird: I'm having trouble with GHC (...) ie: when I enter either of the fib = declaration, it moans about "parse error on input"
15:07:03 <ehird> that gets you the fibonacci numbers, i.e. (fibs !! i) = (fibs !! (i - 1)) + (fibs !! (i - 2))
15:07:16 <ehird> Hiato: ghc executes all its input in a "do" statement
15:07:17 <Hiato> cool, that is soo simple
15:07:18 -!- MommeMC has quit (Read error: 113 (No route to host)).
15:07:21 <ehird> you need:
15:07:23 <ehird> let fibs = 0 : 1 : zipWith (+) fibs (tail fibs)
15:07:31 <ehird> just add 'let' to the start.
15:07:37 <Hiato> aha, cool, thanks :)
15:08:10 <Hiato> I'm gonna try it with a foldr and see where I can get to :)
15:08:24 <ehird> SPOILER:
15:08:28 <ehird> it'll run forever. :)
15:08:33 <Hiato> true
15:08:42 <Hiato> but I would like to be able to produce that :)
15:08:47 <ehird> so will (length fibs), aww ;)
15:09:11 <ehird> haskells laziness takes some getting used to
15:09:19 <ehird> i.e. 0-argument functions can just be normal variables, because of laziness
15:09:37 -!- slereah_ has joined.
15:09:51 <Hiato> nice :)
15:10:32 <ehird> Hiato: now you have to go and figure out monads
15:10:33 <ehird> have fun
15:11:16 <Hiato> sure, I will try, but first I want to crack the foldr conundrum (I am correct in using foldr, right?)
15:11:30 <ehird> not with fibs, no
15:11:32 <ehird> use foldl
15:11:37 <ehird> foldr goes to the right first
15:11:41 <ehird> ergo: it goes to the END of fibs
15:11:42 <Hiato> oh yeah
15:11:46 <ehird> that will, uh, never work ;)
15:11:47 <Hiato> I reember
15:11:52 <Hiato> thanks ehird :D
15:11:58 <ehird> HOWEVER
15:12:01 <ehird> foldl won't terminate either
15:12:10 <ehird> on account of having to do the operation over, um, every element.
15:12:30 <ehird> There's no way to give a 'partly-evaluated' fold.
15:12:30 <ehird> 'map' works though
15:12:30 <Hiato> yeah, I get I :P
15:12:30 -!- Slereah has quit (Success).
15:12:56 <ehird> Prelude> map (mod 13) (tail fibs)
15:12:56 <ehird> [0,0,1,1,3,5,0,13,13,13,13,...
15:14:33 <Hiato> let fibs = foldl (+) 0 [0,1,fibs]
15:14:34 <Hiato> ?
15:14:39 <Hiato> I can't actually check :P
15:14:59 <ehird> why would that work? by the way
15:15:01 <ehird> the [0,1,fibs]
15:15:06 <ehird> the fibs doesnt' refer to the fibonaccis you defined before
15:15:10 <ehird> but THE THING YOU ARE DEFINING ITSELF
15:15:20 <ehird> so you have: [0,1,foldl (+) 0 [0,1,fold ..
15:15:32 <ehird> and, ofc, this makes no sense
15:15:41 <Hiato> ahh, but surely you get [0,1,0,1,0,1 etc... when you add you get [0,1,1,2 etc]
15:15:49 <Hiato> yes, I see
15:15:52 <ehird> you want:
15:15:53 <Hiato> thanks
15:15:54 <ehird> 0 : 1 : fibs
15:16:00 <ehird> also, foldl doesn't do what you think it does
15:16:09 <Hiato> really?
15:16:13 <ehird> think of fold* as something replacing the cons operation
15:16:16 <ehird> if you have [1,2,3]
15:16:17 <ehird> you have:
15:16:21 <ehird> 1 : 2 : 3 : []
15:16:24 <Hiato> oh, I see
15:16:27 <Hiato> so you need a map
15:16:28 <ehird> foldl replaces [] with its second argument
15:16:31 <ehird> and the cons with its first
15:16:32 <ehird> so you get
15:16:34 <ehird> 1 + 2 + 3 + 0
15:16:36 <ehird> -> 4
15:16:40 -!- ais523 has joined.
15:16:45 <ehird> foldr is the same but it's the other associative
15:16:48 <ehird> hey ais523
15:16:54 <Hiato> yes, so you need a map, so map foldl etc
15:16:54 <ais523> hello
15:16:57 <Hiato> hello
15:19:54 <Hiato> let fib = [0,1]
15:19:55 <Hiato> map (foldl (+) 0 fib) (tail fib)
15:20:08 <Hiato> in a pseudo-code kind of way?
15:20:28 * faxathisia prefers, map fst $ iterate () $ (0,1)
15:20:29 <ehird> <interactive>:1:5:
15:20:30 <ehird> Couldn't match expected type `a -> b'
15:20:30 <ehird> against inferred type `Integer'
15:20:30 <ehird> In the first argument of `map', namely `(foldl (+) 0 fib)'
15:20:30 <ehird> In the expression: map (foldl (+) 0 fib) (tail fib)
15:20:30 <ehird> In the definition of `it': it = map (foldl (+) 0 fib) (tail fib)
15:20:40 <Hiato> (5:20:48 PM) Hiato: in a pseudo-code kind of way? :P
15:20:41 * faxathisia prefers, map fst $ iterate (\(x,y)->(y,x+y)) $ (0,1)
15:20:45 <ehird> faxathisia: 0 : 1 : zipWith (+) fibs (tail fibs)
15:21:01 <Hiato> ehird: but concept wise, is that correct?
15:21:02 <ehird> Hiato: Well, obviously not. The first argument to map needs to be a function
15:21:10 <faxathisia> ehird, Yes?
15:21:14 <Hiato> oh, I see
15:21:16 -!- puzzlet has quit (Remote closed the connection).
15:21:18 <ehird> Hiato: I think your terminology is a bit wrong
15:21:24 -!- puzzlet has joined.
15:21:25 <Hiato> probably
15:21:32 <ehird> Hiato: Maybe reading a tutorial (or GHC's Prelude docs) would help a bit :)
15:21:39 <faxathisia> map fst $ iterate (\(x,y)->(y,x+y)) $ (0,1) -- also fibs
15:21:53 <Hiato> but for each in fib do fib[current+1]=foldl (+) 0 fib
15:21:58 <Hiato> yes, agrred
15:22:00 <Hiato> *agreed
15:22:23 <Hiato> I will be the first to admit, I know nearly nothing about Haskell
15:23:13 <faxathisia> Actually, Slereah might have said that first :P
15:23:23 <Hiato> lol :)
15:23:25 <faxathisia> (In regards to scheme)
15:25:24 <ehird> Hiato: You can't code that in haskell. Laziness would trip you up
15:25:43 <ehird> fibs always means 'the WHOLE list'
15:25:55 <Hiato> yes, understood :)
15:26:56 <Hiato> I'll dig around and see what I can do :) Thanks ehird, you have been a big help (believe it or not :P )
15:27:32 <ehird> :P
15:27:34 <ehird> np
15:27:41 -!- ehird has quit ("Leaving").
15:28:24 -!- ehird has joined.
15:29:45 <slereah_> faxathisia: I'm cooking up something.
15:30:21 <slereah_> It's a program that will simply generate all possible combinations of combinators and pass them through LB
15:30:41 <slereah_> And then try to see if they correspond to the original expression.
15:30:50 <Hiato> wicked
15:31:09 <Hiato> but slereah: won't that get very big very quickly (Factorial possibilities)
15:31:31 * Hiato knows slereah wasn't talking to me for a reason... :P but felt he had to say something
15:31:59 <slereah_> BRUTE FORCE BITCH
15:32:26 <slereah_> Also, since it was for faxathisia's riddle-solving for "To mock a mockingbird", the answer can't be that big.
15:32:26 <Hiato> heh, I guess I should just then Brute Force my Rijandael encrpyted notes then :P
15:33:22 <faxathisia> I tried that method
15:33:29 <slereah_> What was the problem?
15:33:41 <faxathisia> used the wrong equality check on lambda terms though
15:34:27 <slereah_> What you used?
15:35:10 <faxathisia> I was checking terms in STLC intead of untyped for some reason :S
15:35:34 <faxathisia> I just coded it between class to pass time
15:51:17 <slereah_> faxathisia!
15:51:17 <slereah_> I think I got something!
15:51:40 <faxathisia> cool
15:52:32 <slereah_> http://membres.lycos.fr/bewulf/Russell/Lazy%20Bird/Compare
15:53:32 <slereah_> Also work with the b and {q,t}!
15:54:40 <faxathisia> how did you do that so fast @_@
15:54:57 <faxathisia> that's awesome
15:55:37 <slereah_> Although I should hide the inner workings.
15:55:59 <slereah_> Give me an expression to compose from soemthing else to check
15:56:49 <slereah_> (The program is just take the datas, generate all strings, try them in lazy bird with dummy variables)
15:57:10 <slereah_> As such, it can only check combinators that works on all combinators.
15:57:18 <slereah_> s, k, b, m and so on are okay.
15:57:36 <slereah_> Pred won't work, 'cause it doesn't simply rearrange them
15:59:32 <Hiato> ok, ehird: this might be right, but I have no way of telling, what do you think?
15:59:33 <Hiato> let fib = [1,0]
15:59:33 <Hiato> let fib = (foldl (+) 0 fib) : fib
15:59:35 -!- oerjan has joined.
15:59:40 <slereah_> slereah@Vixem:~/Esolang$ python Generate.py
15:59:40 <slereah_> Expression to compare :t
15:59:40 <slereah_> Number of argument :2
15:59:40 <slereah_> Set of combinators to compose from (separated by ,) :c,i
15:59:40 <slereah_> `ci converts to t
15:59:43 <slereah_> Yay
15:59:46 <ehird> Hiato: let fib = (foldl (+) 0 fib) : fib -- nonsensical self reference
16:00:10 <ehird> Hiato: You CANNOT resassign a variable in Haskell. They are constant. Referring to a variable in a later binding of it completely forgets about that old one. You have no access to [1,0] from your previous fib.
16:00:19 <ehird> There is no state in Haskell.
16:00:49 <Hiato> well, running it once functions, sort of:
16:00:49 <Hiato> Prelude> let fib = [1,0]
16:00:49 <Hiato> Prelude> (foldl (+) 0 fib) : fib
16:00:49 <Hiato> [1,1,0]
16:00:55 <oerjan> um, you are perfectly allowed to do circular definitions, though
16:01:10 <oerjan> but that particular equation won't work
16:01:30 <Hiato> hrmm... yes, I see your point ehird
16:01:45 <ehird> oerjan: yes of course
16:01:48 <Hiato> and this won't work anyway as it will add all the numbers, not just the previous too
16:02:16 <Hiato> *two
16:02:24 <oerjan> actually adding all the previous numbers does work if you do it right - there is a haskell fibonacci golf based on it
16:02:58 <Hiato> hrmm... worth considering, oh well, anywho, I will plough on, and hopefulyl come up with a functioning solution - functionally
16:03:20 <oerjan> hm, i think you need to add one extra 1
16:03:35 <Hiato> yes,it appears so
16:03:36 <oerjan> 1+1+1+2+3+5 = 13
16:03:39 <Hiato> I was just about to say :P
16:04:11 <Hiato> add only to the numbers > 2
16:04:28 <Hiato> nevermind
16:04:41 <slereah_> faxathisia: http://membres.lycos.fr/bewulf/Russell/Lazy%20Bird/Generate.py
16:04:48 <slereah_> Beware of infinite loops!
16:05:47 <Hiato> which is the best Haskell tutorial (assuming no Functional programming experience)? There are too many... http://www.haskell.org/haskellwiki/Tutorials
16:06:21 -!- calamari has joined.
16:08:12 -!- timotiis has joined.
16:08:31 <ehird> Hiato: assuming no functional programming experience is. Kind of hard.
16:08:37 <ehird> But you can get by with MINIMAL.
16:08:52 * ais523 advises you to learn a different functional language first
16:08:53 <ehird> http://darcs.haskell.org/yaht/yaht.pdf Yet Another Haskell Tutorial is generally considered to be the best
16:08:59 <ehird> I've seen http://en.wikibooks.org/wiki/Haskell
16:09:02 <ehird> be reccomended too
16:09:03 <oerjan> there is a "best places to start" section, and later a "Haskell Tutorial for C Programmers"
16:09:14 <ehird> Some like http://halogen.note.amherst.edu/~jdtang/scheme_in_48/tutorial/overview.html, but I think it skims too many things
16:09:17 <ehird> ais523: I don't
16:09:28 <ehird> Scheme, for example, might give you very incorrect perceptions of haskell
16:09:35 <ais523> good point
16:09:42 <faxathisia> Why would it?
16:09:42 <ais523> but it's probably worth getting the concept first
16:09:54 <faxathisia> They're clearly differeng
16:09:58 <ais523> I was going to suggest learning something like functional-style JavaScript just to get into the mood
16:11:42 <Hiato> hrmm... well thanks for all of this info, ehird, ais523
16:11:45 <Hiato> and faxathisia
16:11:58 <oerjan> Hiato: and don't forget the #haskell channel
16:12:18 <ehird> yes!! #haskell
16:12:22 <ehird> and /query lambdabot
16:12:24 <Hiato> cool
16:12:49 <Hiato> thanks :D, well I'm gonna eat some lunch/supper now
16:12:52 <Hiato> and then brb
16:12:53 <Hiato> :)
16:13:08 <slereah_> 'kay.
16:13:27 <oerjan> it's the friendliest (specific) programming language irc channel in existence! or so they tell me because i haven't tried any others :)
16:14:10 <slereah_> Aren't we a programming language IRC channel?
16:14:33 <oerjan> that's why i added (specific) at the last lookover ;)
16:14:55 <slereah_> What of #IRP!
16:15:41 -!- faxathisia has quit ("If there are any aliens, time travellers or espers here, come join me!").
16:16:59 -!- jix has quit ("CommandQ").
16:18:22 -!- Tritonio_ has joined.
16:21:37 -!- jix has joined.
16:21:37 -!- Tritonio__ has quit (No route to host).
16:38:27 -!- sebbu has joined.
16:38:27 -!- Corun has quit (Read error: 110 (Connection timed out)).
16:39:35 -!- calamari has quit ("Leaving").
16:41:33 -!- Corun has joined.
16:44:23 -!- ais523 has quit ("moving to a different Internet connection, I'll be back soon").
16:47:20 -!- Hiato has quit (Read error: 110 (Connection timed out)).
16:47:53 <oerjan> slereah_: are you aware of the Church-Rosser theorem? basically as a consequence, if a lambda expression is normalizable then its normal form is unique
16:48:54 <oerjan> so for such expressions simply lazily evaluating them (possibly with eta-reduction too) will show if they are equal
16:48:55 <ehird> The Church-Rosser Theorem would be a good name for something
16:48:57 <ehird> an album, maybe
16:53:28 -!- Slereah has joined.
16:56:51 -!- ais523 has joined.
16:56:57 <ehird> hello ais523
16:57:02 <ehird> (I should just add that on auto)
16:57:09 <ais523> hello
17:02:21 -!- slereah_ has quit (Read error: 110 (Connection timed out)).
17:29:44 -!- Corun has quit ("This computer has gone to sleep").
18:22:37 -!- Hiato has joined.
18:23:12 * Hiato curses the "Load Shedding" policy eskom, the national electricity board, has acquired....
18:23:32 * ais523 askes Hiato for more details
18:24:29 <Hiato> Load Shedding, or enforced power cuts as they have come to be known in SA, is the brainchild of the (brainless) national electricity borad
18:24:48 <Hiato> they cut off specific areas' power supply to let other areas have some
18:25:02 <Hiato> so, essentially what happens is:
18:25:59 <Hiato> the schedule on their site is never correct, and they say that you should never have more than two power cuts during one given day. However, most times we have ~3 cuts, lasting about 4 hours each -- well beyond the "official" limit of 2 hours
18:26:04 <ais523> sounds awful
18:26:32 <Hiato> then, if you phone them to check what is wrong with the schedule, they tell you to check the website.... trivial, if you had power....
18:26:35 <Hiato> indeed, it is
18:26:55 <oerjan> o_O
18:27:04 <ais523> a laptop with a dial-up modem would mitigate that to some extent
18:27:13 <ais523> although obviously is nowhere near as good as the perfect situation
18:27:26 <Hiato> yes, but then again, we do have the highest telephone rates in the WORLD....
18:27:53 <Hiato> and, only one service provider, who have total market domination and thus charge whatever they feel like
18:28:05 <Hiato> but yes, fair enough
18:28:07 <ais523> which country do you live in?
18:28:17 <Hiato> South Africa
18:28:37 <Hiato> the supposed host of the 2010 games... though we have yet to start construction on a single power plant
18:28:38 <Slereah> Can't you use SOLAR POWER?
18:29:46 <Hiato> yes, that would be fine Slereah, but what happens at night? :P Co-incidentally, in a completely unrelated incident, Eskom bought up thousands of shares in all generator manufacturers and battery re-salers...
18:30:09 <Slereah> Hiato: That's why a solar powered system use batteries.
18:30:19 <Hiato> and guess what, Eksom bosses were all recently paid bonuses well in excess of what the GDP of SA is... O_o
18:30:34 <Slereah> And that the panel's surface is dimensioned especially to such parameters
18:31:22 <Hiato> yes, but the fact is that no-matter what you do (oh, and the Rand is about 14 to 1 against the pound, nothing is feasible here) or what you buy, Eskom wins.... :(
18:31:47 <Slereah> Fucking eskimos
18:31:51 <Slereah> Always stealing our power!
18:32:18 <Hiato> indeed... Oh, and while there is not enough power to power SA alone, we still sell power to Namibia and Botswana....
18:33:09 <Hiato> but hey, that is barely the surface, and this is not "#Tell_the_truth_about_South_Africa"
18:33:14 <Hiato> so, I'll stop now ;)
18:34:11 -!- MommeMC has joined.
18:42:07 -!- RedDak has joined.
18:43:41 -!- Asztal has quit (Read error: 110 (Connection timed out)).
18:45:38 -!- ais523 has quit ("bye").
18:51:06 <Slereah> Either the u combinator is real hard to check, or my combinator-matcher is stuck in a loop
18:52:37 <oerjan> http://www.style.org/unladenswallow/
18:52:47 <oerjan> u?
18:53:01 -!- RedDak has quit (Remote closed the connection).
18:53:25 -!- Asztal has joined.
18:53:37 <Slereah> Turing combinator
18:53:48 <Slereah> ^x^y`y``xxy
18:54:17 <oerjan> did you see my comment on church-rosser?
18:54:36 <Slereah> I don't think so.
18:54:53 <ehird> Typing question
18:55:01 <Slereah> and I also think that some random combination of combinators will indeed eventually end up on an infinite loop.
18:55:08 <ehird> You know how in lisp lists you can do #1=(THIS LIST: #1# FOO)?
18:55:18 <Slereah> I should probably have some number of steps limit.
18:55:22 <ehird> A typing system that can do that, could represent the Y combinator as:
18:55:35 <ehird> #1=(#1 -> a) -> a
18:55:41 <ehird> Or even just
18:55:46 <ehird> #1=(#1 -> a)
18:55:54 <ehird> Now, is this viable for use or is it halting-problem suffering or something
18:57:12 <oerjan> i think it is useable
18:57:43 <ehird> of course with a nicer syntax
18:57:46 <oerjan> in fact ocaml has a flag --rectypes (iirc) that allows it
18:57:56 <ehird> Y :: a = a -> b
18:57:57 <ehird> (I think)
18:58:18 <ehird> Or is it
18:58:34 <ehird> No
18:58:36 <ehird> I think that is it
18:59:41 -!- helios24 has quit ("Leaving").
19:00:04 <ehird> Y :: a = a -> b
19:00:04 <ehird> = f -> (x -> f (x x)) (x -> f (x x))
19:00:11 <ehird> should type correctly
19:00:17 -!- timotiis_ has joined.
19:01:46 <ehird> oerjan: what is a = b = a -> b?
19:01:46 <ehird> :P
19:02:24 <oerjan> same as a = a -> a
19:02:34 <ehird> hm
19:02:35 <ehird> oh yeah
19:02:49 <ehird> a = (b = a -> b) -> b
19:02:52 <ehird> WHAT ABOUT THAT :P
19:02:58 <ehird> wait
19:03:01 <ehird> that's also a = a -> a
19:03:02 <ehird> XD
19:03:19 <oerjan> er, is it
19:03:23 <ehird> i think so
19:03:27 <Slereah> What is the meaning of all this!
19:03:33 <ehird> Slereah: types
19:03:49 <Slereah> Any good source on the subject?
19:04:14 <ehird> ghc's error messages
19:04:17 <ehird> mwahahahahahahaha!
19:04:29 <oerjan> everyone in #haskell keeps recommending TAPL, which is apparently a fairly expensive paper book
19:04:34 <ehird> oerjan: I wish I could do: type WTF = WTF -> WTF
19:04:47 <ehird> wait no
19:04:48 <ehird> type WTF a = WTF a -> WTF a
19:04:49 <oerjan> ehird: you can in ocaml with that flag i think
19:04:52 <ehird> then you could do
19:05:05 <ehird> omg :: WTF a
19:05:11 <oerjan> in haskell you need a newtype instead
19:05:11 <ehird> omg (WTF a) = WTF a
19:05:27 <ehird> oerjan: can't newtype a function
19:05:27 <ehird> <3
19:05:48 <oerjan> newtype WTF a = WTF (WTF a -> WTF a)
19:06:11 <ehird> WTF :: (WTF a -> WTF a) -> WTF a
19:06:13 <ehird> that seems wrong
19:06:15 <ehird> (:t)
19:06:50 <oerjan> that's right
19:07:04 <ehird> oerjan: Cool, a function of type "WTF anything" cannot be realised.
19:07:09 <ehird> ... NOT COOL.
19:07:34 <ehird> Well
19:07:35 <ehird> omg :: WTF omg
19:07:36 <oerjan> it's not very useful in haskell
19:07:43 <oerjan> you need at least some monad wrappin
19:07:45 <oerjan> *g
19:07:56 <ehird> if only you could reference your own function inside a type definition, that would work right, oerjan ?
19:07:58 <ehird> sorry for the space before punctuation - xchat
19:08:35 <oerjan> WTF id is a legal value of that type though
19:09:05 <ehird> oerjan: You can't do much with it though.
19:09:09 <oerjan> you can do any combinator that way
19:09:10 <ehird> oerjan: But:
19:09:15 <ehird> foo = WTF foo
19:09:17 <ehird> should be valid
19:09:18 <ehird> no?
19:09:20 <ehird> well
19:09:21 <ehird> no
19:09:27 <ehird> foo :: WTF <some way of referencing foo>
19:09:35 <ehird> dunno what foo's body would be, but hey
19:09:41 <oerjan> foo x = WTF foo
19:09:59 <ehird> foo :: WTF a -> WTF a
19:10:05 <ehird> which actually is "WTF a"
19:10:10 <ehird> but it prints it as "WTF a -> WTF a"
19:10:12 <ehird> for some bizzare reason
19:10:38 <ehird> oerjan: Also, there is no argument you can pass to foo. Fun!
19:11:14 -!- timotiis has quit (Read error: 113 (No route to host)).
19:11:35 <oerjan> er no
19:11:59 <oerjan> WTF a -> WTF a is not the same as WTF a with that newtype
19:12:06 <ehird> ah
19:12:08 <ehird> well that sucks
19:12:09 <ehird> :)
19:12:27 <oerjan> it requires a good deal of wrapping
19:12:40 <oerjan> but all that should disappear during compilation
19:12:45 <ehird> extract (WTF a) = a
19:12:47 <ehird> you can do that
19:12:54 <ehird> oerjan: how do i do it in ocaml?
19:13:18 <ehird> (I may have to start my own reli^H^H^H^Hlanguage that's like haskell, BUT CRAZIER)
19:13:49 <oerjan> iirc with the --rectypes (or something, see my unlambda implementation in it) you can just do type WTF a = WTF a -> WTF a
19:14:59 <Slereah> Hm. Apparently, a hundred steps without finding anything is already a lot for lazy bird
19:15:22 <ehird> oerjan: How easy is ocaml to learn for a haskellfoo?
19:16:13 -!- timotiis_ has changed nick to timotiis.
19:18:01 <oerjan> well ocaml is somewhat more "ordinary" than haskell
19:18:19 <oerjan> having ordinary imperative side effects
19:18:27 <ehird> yeah
19:18:27 <oerjan> it's syntax is ugly as sin, though :)
19:18:33 <ehird> aww, i like it's syntax
19:18:34 <ehird> wait
19:18:39 <ehird> that's a lie, i like SML syntax
19:18:45 <oerjan> anyway, afk
19:26:45 -!- slereah_ has joined.
19:27:46 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
19:38:22 <ehird> type Action = Unlambda -> Action -> Unlambda
19:38:27 <ehird> Isn't that a CPS unlambda?
19:38:40 <ehird> Oh well. newtype.
19:43:32 <oerjan> that was mine? yes it's CPS
19:44:26 <oerjan> er no
19:44:36 <oerjan> thought you were speaking about the ocaml one
19:45:58 <oerjan> actually, that's none of mine
19:46:49 <ehird> i know
19:46:50 <ehird> :)
19:48:15 <ehird> heh
19:48:25 <ehird> that esco guy added links to EVERY SINGLE ESOLANG page they claim to support
19:48:25 <ehird> :|
19:51:24 <slereah_> I hope it's at least interpreted efficiently!
19:53:40 <ehird> slereah_: can't you remember? it isn't
19:53:50 <ehird> it even parses for no reason
19:54:45 <slereah_> I wonder if someone will one day make a real BF processor.
19:54:52 <slereah_> You know, a full scale one.
19:55:11 <slereah_> Not the blueprint or a limited version.
20:01:51 -!- oerjan has quit ("leaving").
20:13:24 -!- timotiis_ has joined.
20:40:16 <GregorR> I have to imagine that [ and ] would be pretty tough to implement in silicon.
20:41:58 <ehird> GregorR: There was a VHDL for it.
20:41:59 -!- timotiis has quit (Read error: 110 (Connection timed out)).
20:42:07 <ehird> But that's Cheating(TM)(C)(R)
20:42:30 <slereah_> Isn't cheating the mother of all esoteric programming?
20:55:51 <slereah_> What's Unlambda's v in lambda form?
20:58:27 -!- Hiato has left (?).
21:02:14 <slereah_> Heh. The combinator-matching program is quite useful to reduce program's length!
21:04:04 <ehird> v in lambda form requires the y combinator
21:04:07 <ehird> it's:
21:04:12 <ehird> Y (\f x -> f)
21:04:18 <jix> GregorR: you could use some shift registers to implement an address tack for the looping points
21:04:29 <ehird> quite simple
21:05:12 <jix> and to make it more esoteric you store the stack in an ccd using dac and adcs to convert the adress from digital to analog and back ^^
21:05:26 <jix> hmm you need a pretty good ccd and pretty good dacs and adcs then i guess
21:07:39 <ehird> slereah_: Y didn't yout hink of Y? :P
21:08:08 <slereah_> I'm not that used to the theory!
21:08:50 <ehird> Y is just how you do recursion...
21:09:13 <ehird> (Y (\f -> ...)) gets you a recursive function
21:09:28 <ehird> f is the function itself, i.e. (Y (\f -> ...))
21:09:38 <slereah_> I know, though I prefer U personaly
21:09:41 <ehird> (Y (\f -> (\x -> x))) ;; pointless Y combinator
21:10:02 <ehird> Eh, Y is nicer
21:10:08 <ehird> You can build Y on top of USK
21:10:26 <ehird> Y = S (K (U I)) U
21:10:28 <slereah_> But the lambda expression of U can easily be modified.
21:10:40 <ehird> slereah_: Ditto with Y
21:10:43 <slereah_> Especially nice when I want output or the function to stop at some point.
21:10:47 <slereah_> How?
21:10:53 <slereah_> I wasn't able to do it
21:11:52 <ehird> Well, you need to learn lambda calculus then :-)
21:12:16 <slereah_> Ammah tryin'!
21:12:42 <slereah_> I snuck in the computation class monday, but I probably won't be able to do it much longer.
21:12:50 <slereah_> I've got other classes soon to begin
21:21:33 -!- timotiis_ has changed nick to timotiis.
21:26:35 <slereah_> "``bv`t0 converts to ``bv`t0"
21:26:41 <slereah_> Thanks a lot computer.
21:32:50 <ehird> Computer just wants a hug.
21:33:01 <ehird> It wants something more fuzzie than combinators. :(
21:33:28 <slereah_> Well, combinators are more like feathery.
21:35:44 <slereah_> ``m``b`s``c``vk.1r``c``bbm``s``bv`t0``s``vk`sb`t0``v0i
21:35:52 <slereah_> Well, that's as short as I can make it.
21:40:18 <slereah_> Problem is, it's hard to use brute force with u, m, o or w.
21:40:28 <slereah_> Ends up on may kinds of infinite loops.
22:08:34 -!- olsner has joined.
22:36:55 -!- ttm_ has quit (Read error: 110 (Connection timed out)).
22:41:30 -!- oerjan has joined.
23:03:04 -!- jix has quit ("CommandQ").
23:10:34 -!- slereah_ has changed nick to Slereah.
23:23:00 <Slereah> My brute force seems to be a little too brutal.
23:23:21 <Slereah> The size of the set increases quadratically.
23:23:53 <oerjan> what, it's only polynomial? that's not brutal ;D
23:24:13 <Slereah> Well, problem is, it retries things that have already been tried.
23:24:35 <Slereah> For instance, if I got ski, it tries {s, k, i}
23:25:06 <Slereah> And then {s, k, i, `ss, `kk, `ii, `si, `sk, `ks, `ki, `is, `ik}
23:25:29 <Slereah> Wait, that's not even square.
23:25:44 <Slereah> That would be... n² + n at each step
23:26:08 <ehird> ... halting problem question
23:26:10 <Slereah> Well, still polynomial I guess
23:26:21 <Slereah> But it still could use improvement
23:26:47 <ehird> isn't this a halting solver for a turing machine: Run the program, saving each state of the program along the way. If you repeat a previous state, say 'yup -- infinite loop'
23:26:55 <ehird> otherwise, you get to the end and say 'nope'
23:27:01 <ehird> It obviously doesn't work, but why?
23:27:07 <Slereah> ehird: Works for a finite state machine.
23:27:14 <ehird> Slereah: We're talking turing machines
23:27:19 <Slereah> But since the tape is infinite, there's an infinite number of configuration
23:27:33 <ehird> So use Hilbert's Hotel-method to store an infinite tape at each point
23:27:50 <Slereah> It will eventually end up in the same state, but it might be on a different tape
23:28:05 <ehird> So... keep track of that?
23:28:14 <Slereah> What, an infinity of it?
23:28:28 <ehird> Hilbert's Hotel.
23:28:43 <Slereah> The nice thing about computation theory is that the theorems are based on practical facts.
23:29:01 <Slereah> You can't have an infinity of symbols because you couldn't make an infinity of symbols.
23:29:07 <ehird> Slereah: Yes, like machines with an infinitely long tape
23:29:13 <Slereah> Same thing with an infinite number of state for the machine.
23:29:35 <Slereah> Well, it's unbounded.
23:29:56 <Slereah> But yes, you could solve the halting problem of a Turing machine if you used moar infinites.
23:30:10 <Slereah> Infinite time, infinite states, that sort of things.
23:30:31 <Slereah> Wiki for "Hypercomputation", they've got some good links.
23:31:31 <oerjan> ehird: a non-halting computation doesn't need to repeat its state ever
23:31:55 <oerjan> let f n = f (n+1) in f 0, for example
23:32:20 <ehird> i guess
23:33:08 -!- MommeMC has quit.
23:33:53 <Slereah> State, as in machine state or configuration of the tape?
23:34:53 <oklopol> hi ppl!
23:34:59 <ehird> pi hppl
23:35:01 <oklopol> is it sex night?
23:35:11 <Slereah> Well, since you ask so nicely
23:35:13 <oklopol> uhhh i'm so drunk
23:36:19 <oerjan> Slereah: all state
23:36:42 <ehird> oklopol: how esoteric
23:37:13 <Slereah> Always confuse me.
23:39:04 <oklopol> ehird: how what when who?
23:39:27 <Slereah> Oklosextalk?
23:39:48 <ehird> oklopol: you are in?#esoteric
23:39:58 <ehird> oklopol: fkhf abds if not whedfgg
23:40:04 <oklopol> ehird: i don't see your point
23:40:25 <ehird> oklopppol: fahe utyo? maybe if you fjav ngk
23:40:40 <oklopol> Slereah: i have yet to unite sex and programming, but i'm sure there is a connection
23:40:54 <oklopol> "oklopol: fuck you? maybe if you fuck me..."
23:40:56 <Slereah> Use trinary.
23:41:02 <Slereah> Instead of bits, you have tits
23:41:33 <oklopol> good idea
23:41:43 <oklopol> perhaps that would hewlp.
23:41:44 <ehird> oklopol: I sdaid tahtht? nnu...
23:41:46 <oklopol> *help
23:41:55 <olsner> wow, a computer with several billion tits.. now that'd be something
23:42:07 <oklopol> omg!
23:42:16 <oerjan> >_<
23:42:30 <Slereah> All operations should have tit-related names.
23:42:37 <oklopol> yay!
23:42:37 <ehird> oklopol: Ogm? Whtat isty ouur prblemo..
23:42:38 <oklopol> boobies!
23:42:52 <oklopol> ehird: my problem is i did not get any tonight
23:43:10 <oklopol> i hate drinking, but it's even worse if you don't get laid!
23:43:16 <oklopol> you know the feeling
23:43:23 <ehird> oklopol: Yufhsdhj fdghpsd fjkosduaid sduai fids if iausi...
23:43:26 <oklopol> :DSADDDDDDDDDDDDDDD
23:43:34 <oklopol> ehird: iiiijsijhuhf hwuairhf aweurfhuiah erfs
23:43:41 <olsner> unfortunately, #apache didn't seem to be interested in my report on mod_rewrite's memory problems when running a brainfuck interpreter
23:43:52 <oerjan> imagine that.
23:43:53 <ehird> Damnit! You saw through my plot to try to get you to believe you were progressively getting unbelievably drunk
23:44:02 <oklopol> :D
23:44:13 <oklopol> i'm not that drunk, just a bit
23:44:24 -!- Slereah has changed nick to slereah_.
23:44:29 <slereah_> Oh yeah?
23:44:36 <oerjan> he's not as think as you drunk he is
23:44:38 <oklopol> well SHUUUUURE
23:44:38 <slereah_> Count backward using only prime numbers!
23:44:49 <oklopol> fronm WHAT?
23:44:50 <oklopol> adf0
23:44:55 <slereah_> INFINITY
23:44:57 <oerjan> 101
23:45:10 <oklopol> 101, 97, 93, 91
23:45:11 <oklopol> umm
23:45:33 <oklopol> 87, 83, 79, 73, 71, 67, 61
23:45:34 <olsner> neither 0 or 1 are prime numbers according to the definitions I've been taught
23:45:35 <oklopol> umm
23:45:44 <oklopol> please fuck me if i'm wrong
23:45:49 * ehird fucks oklopol
23:45:55 * slereah_ fucks oklopol
23:45:58 <oklopol> 59, 57, 53, 51, 47, 43,
23:46:00 <slereah_> I didn't check, but you know
23:46:01 <oklopol> OMh
23:46:07 <ehird> oklopol: and you said you didn't get any tonight
23:46:10 <oklopol> did i fail?=
23:46:13 <oklopol> :)
23:46:19 <ehird> #ESOTERIC - PROVING YOU WRONG SINCE SOME TIME
23:46:20 <slereah_> 87 isn't prime, I think.
23:46:28 <oklopol> oh, did you just irc-fuck me for fun?
23:46:28 <oerjan> you missed 89
23:46:31 <oklopol> isn't?
23:46:33 <slereah_> 8+7 = 15. It's divisible by 3.
23:46:35 <oklopol> oh, darn
23:46:53 <oerjan> oh, and 91 isn't either
23:46:55 <slereah_> It's... 29*3
23:46:56 <oklopol> slereah_: oh, right, i didn't realize that!
23:47:08 <oklopol> HEY
23:47:12 <oklopol> stop it! :)
23:47:35 <oklopol> just say "oklo, you failed."
23:47:41 <slereah_> OKLO, YOU FAILED
23:47:52 <oklopol> yes, that's the critique i need
23:47:53 <slereah_> Remember that Z game?
23:48:01 <olsner> but the digits 8, 1, 6, 4 and 9 are also non-primes
23:49:01 <oklopol> olsner: i didn't say them though
23:49:31 <olsner> oklopol: 89, 83, 79, 71, 67, 61, 59, 51, 47, 43
23:50:02 <oklopol> olsner: well you fixed me pretty bad there
23:50:26 <slereah_> 51 -> 5+1=6 :o
23:50:30 <ehird> oklopol: ,[.,]
23:50:32 <olsner> well, the condition was *using only prime numbers*
23:50:37 -!- puzzlet_ has joined.
23:50:38 <slereah_> 17*3
23:50:40 <oklopol> i just know the ones on 1..10 * 1..10
23:51:55 <olsner> gotta go sleep, too tired to think
23:52:02 <oklopol> ;-----------)
23:52:08 <slereah_> Bai
23:52:13 <oklopol> bie!
←2008-01-24 2008-01-25 2008-01-26→ ↑2008 ↑all