00:00:11 <fizzie> To fill the daily Perl quota - functional programming in Perl: perl -e 'print &{&{sub { my $f = shift; return &$f($f); }}(sub { my $f = shift; return sub { my $n = shift; return 1 if $n < 2; return &{&$f($f)}($n-1) + &{&$f($f)}($n-2); }; })}(8), "\n";'
00:00:27 <fizzie> I think that means it's time to go to sleep.
00:12:35 -!- kipple has quit (Read error: 110 (Connection timed out)).
00:16:08 -!- graue has joined.
00:19:21 -!- graue has quit (Client Quit).
00:29:16 -!- CXI has joined.
01:26:27 -!- GregorR has quit (Remote closed the connection).
01:26:35 -!- GregorR has joined.
01:58:46 -!- GregorR has quit (Remote closed the connection).
01:58:50 -!- GregorR_ has joined.
02:25:12 -!- GregorR_ has quit (Remote closed the connection).
02:25:45 -!- GregorR_ has joined.
02:27:34 -!- GregorR_ has quit (Remote closed the connection).
02:27:50 -!- GregorR_ has joined.
02:28:45 -!- GregorR_ has quit (Remote closed the connection).
02:29:17 -!- GregorR_ has joined.
02:39:08 -!- GregorR__ has joined.
02:43:07 -!- GregorR__ has quit (Remote closed the connection).
02:43:38 -!- GregorR__ has joined.
02:54:02 -!- GregorR__ has quit (Remote closed the connection).
02:54:38 -!- GregorR__ has joined.
03:03:49 -!- GregorR__ has changed nick to GregorR.
04:37:32 -!- Arrogant has joined.
04:41:33 -!- Sgeo has quit.
05:12:35 -!- CXI has quit (Connection timed out).
05:57:45 -!- GregorR__ has joined.
05:58:03 -!- GregorR has quit (Remote closed the connection).
06:10:51 -!- GregorR__ has quit (Remote closed the connection).
06:13:55 -!- GregorR___ has joined.
06:16:31 -!- GregorR__ has joined.
06:16:34 -!- GregorR__ has quit (Remote closed the connection).
06:18:57 -!- GregorR___ has quit (Remote closed the connection).
06:19:04 -!- GregorR___ has joined.
06:19:20 -!- Arrogant has quit ("Leaving").
06:27:33 -!- GregorR___ has quit (Remote closed the connection).
06:27:46 -!- GregorR___ has joined.
07:04:20 -!- GregorR____ has joined.
07:05:45 -!- GregorR___ has quit (Remote closed the connection).
07:33:07 -!- calamari has quit ("Leaving").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:07:14 -!- GregorR____ has changed nick to GregorR.
08:59:05 -!- GregorR has quit (Remote closed the connection).
08:59:15 -!- GregorR has joined.
09:13:14 -!- GregorR has quit (Remote closed the connection).
09:13:20 -!- GregorR has joined.
09:34:21 -!- SimonRC has quit (Remote closed the connection).
09:35:08 -!- SimonRC has joined.
11:07:06 -!- GregorR__ has joined.
11:07:24 -!- GregorR has quit (Remote closed the connection).
11:09:21 -!- kipple has joined.
11:19:05 -!- GregorR__ has quit (Remote closed the connection).
11:20:56 -!- GregorR__ has joined.
11:30:41 -!- GregorR__ has quit (Remote closed the connection).
13:40:46 -!- Keymaker has joined.
13:41:24 <Keymaker> oh my head.. what is this place? where am i?! this looks strangely familiar..
13:59:08 -!- kipple has quit (Read error: 110 (Connection timed out)).
14:01:17 -!- kipple has joined.
14:33:55 -!- jix has joined.
15:02:19 -!- jix has quit (" HydraIRC -> http://www.hydrairc.com <- IRC has never been so good").
15:31:59 -!- cyph1e has joined.
15:33:10 <cyph1e> Hi, can anyone give me an advice for writing a brainfuck program which increases a 3 digit input (seen as a number) by one?
15:33:38 <cyph1e> like 123 -> 124, 879 -> 880
15:36:30 <kipple> the way I would do it: increase the last digit by one. test if the new number is 58 (ascii value of ':'). If not, then done. else replace with 48 and repeat the procedure for next digit
15:37:21 <kipple> but you didn't specify how the number is input, so it might not apply
15:37:44 <kipple> is it read as 3 separate digits or a single number with 3 digits
15:38:33 <kipple> well, sure, but if it is only one single number you have to do some more work :)
15:38:55 <kipple> bah . never mind me. being stupid today
15:40:02 <cyph1e> the input is read as 3 characters
15:40:27 <kipple> then my method should work
15:40:32 <cyph1e> what's the "brainfuck-way" to check if a new number is 58?
15:40:46 <kipple> subtract 58 and check for 0 with [
15:41:16 <Keymaker> that works only if the interpreter is wrapping
15:41:59 <Keymaker> well, let's say i input '4' in my interpreter -- if i subtract 58 from it it causes underflow
15:42:11 <kipple> well, then your interpreter is broken IMHO :)
15:43:16 <cyph1e> are the bytes signed or unsigned?
15:43:52 <Keymaker> how did you find out this marvellous language?
15:44:10 <kipple> again, that depends on the interpreter, but the original used signed WRAPPING bytes.. ;)
15:44:22 <kipple> damn. unsigned I mean ;D
15:44:23 <Keymaker> but the original interpreter is buggy if you remember ;)
15:44:28 <cyph1e> well I'm doing some programming challenges and one of them asks me to write such a program in bf
15:46:43 <cyph1e> so to check if a byte is 58, I need to copy the byte first?
15:47:18 <Keymaker> in your case it'd be easiest (not necessarily shortest) to first subtract 48 from the cell when reading input
15:47:38 <Keymaker> then you could check if the cell's value is ten, a bit easier
15:47:53 <Keymaker> and when printing out adding 48 to each digit
15:48:11 <Keymaker> this way is not the shortest, but it's simplest
15:49:23 <cyph1e> are all the bytes guaranteed to be zero at start?
15:50:51 <Keymaker> btw, remember the special case that if you increase 999 it'll be no longer three-digit number ;)
15:51:10 <cyph1e> use 5 bytes as a start
15:51:48 <cyph1e> do the increase thing, and '<' until you reach a zero byte
15:52:41 <Keymaker> you thought correct, but you need to loop there
15:52:57 <Keymaker> so i suggest using memory 0 0 1 9 1 9 1 9
15:53:42 <Keymaker> and you can move slide in the memory by using [>>] kinda structures
15:53:53 <Keymaker> it gets a bit more complicated, but not much
15:54:12 <Keymaker> the brainfuck way of thinking takes a bit time ;)
15:54:55 <Keymaker> there's however a simpler way too
16:01:26 <Keymaker> hmm, i think the loop way is the simplest afterall.. i started making another way but it gets a lot more complicated
16:01:58 <Keymaker> i suggest having there something booleans to indicate the current digit that is currently being selected
16:02:15 <Keymaker> to allow easier moving, 0 indicating selected and 1 non-selected
16:02:15 <cyph1e> yeah it seems like a good ieda
16:03:14 <Keymaker> and every take two copies of the digit, then return it, and then check from the other copy if it's 10 -- if it is then set the digit to zero and increase the one on its left side
16:03:43 <Keymaker> this is basically the "move left until reach zero byte"
16:04:13 <cyph1e> ah great.. I'm gonna eat dinner, I'll be back in a while
16:12:35 -!- GregorR has joined.
16:13:03 -!- GregorR has quit (Remote closed the connection).
16:13:33 -!- GregorR has joined.
16:29:22 -!- GregorR has quit (Remote closed the connection).
16:29:28 -!- GregorR has joined.
16:31:30 <cyph1e> Can you move left if you're in the original position in bf?
16:34:52 <cyph1e> the flag bytes, are they only used for knowing if the result is 3 or 4 digits?
16:36:14 <Keymaker> that as well, but they help you to move around in the array when you're looping
16:36:23 <Keymaker> and doing the calculation for every digit
16:36:56 <cyph1e> I'm having a bit trouble trying to make this into a fancy loop instead of hardcoding each calculation
16:37:26 <Keymaker> heh, yeah -- naturally you can also hardcode each calculation if you want to
16:38:12 <cyph1e> I think I give that a try first
16:47:12 <Keymaker> well, it can be pretty difficult for a beginner, yes. i didn't learn bf in one night
16:48:03 <Keymaker> i can make a sample code if you want to see what it would look like or something
16:48:39 <cyph1e> http://pastebin.zerovolt.com/101/
16:49:20 <cyph1e> those brackets, [ ], I enter that loop if I have a 9 as most-right digit
16:51:19 -!- GregorR has quit (Remote closed the connection).
16:51:35 <Keymaker> here comes to interpreter question.. if the interpreter is wrapping the only case you DON'T enter the loop is if the value is 10
16:51:37 -!- GregorR__ has joined.
16:52:30 <cyph1e> how to construct "if-statements" otherwise?
16:53:30 <cyph1e> but I would rather like to step inside that bracket body if I got 10
16:54:12 -!- GregorR___ has joined.
16:54:20 -!- GregorR__ has quit (Remote closed the connection).
16:54:56 <Keymaker> if the smallest value in the cell can be zero; [-[-[-[-[-[-[-[-[-[- now code what happens if cell is 10 ] ] ] ] ] ] ] ] ] ]
16:55:22 <Keymaker> remember to do that in a copy of the cell, otherwise you'll lose the cell's value
16:56:37 <cyph1e> shouldn't it be -[-[-[-[-[-[-[-[-[-[
16:56:49 <Keymaker> it depends what the smallest value there can be
16:57:01 <Keymaker> in that example of mine the smallest possible value was zero
16:57:11 <cyph1e> your example was correct, I was thinking wrong
17:04:50 <cyph1e> http://pastebin.zerovolt.com/102/
17:04:59 <cyph1e> shouldn't that work for 2 numbers? I must've made a mistake somewhere
17:07:39 <cyph1e> I'm currently trying it on http://koti.mbnet.fi/villes/php/bf.php
17:08:52 <Keymaker> ah, you know what the problem is? you forgot to do increase the number
17:09:07 <Keymaker> if you input 499 it stays as 499
17:09:24 <cyph1e> I don't understand, I'm getting crap output
17:09:37 <Keymaker> perhaps that interpreter doesn't work right..
17:09:52 <cyph1e> can you recommend one?
17:12:26 <Keymaker> you could try this: http://www.iamcal.com/misc/bf_debug/
17:12:30 <cyph1e> a one I just downloaded crashed
17:13:03 <Keymaker> anyways, you don't increase the last digit in any point
17:13:21 <cyph1e> yeah, I should do that in the beginning, before copying
17:13:24 <Keymaker> so instead of subtracting 48 subtract 47
17:15:00 <Keymaker> it should work now. when you input 499 it outputs 4:0 which means the middle digit is 10
17:18:33 <cyph1e> I should be able to do this on my own now, thanks a lot for your help
17:21:22 -!- jix has joined.
17:43:31 -!- calamari has joined.
17:45:14 -!- GregorR____ has joined.
17:45:17 -!- GregorR___ has quit (Remote closed the connection).
18:39:29 -!- Keymaker has left (?).
18:51:23 -!- GregorR_____ has joined.
18:51:42 -!- GregorR____ has quit (Remote closed the connection).
19:09:26 -!- GregorR_____ has quit (Remote closed the connection).
19:10:06 -!- GregorR_____ has joined.
19:28:53 -!- GregorR______ has joined.
19:32:49 -!- GregorR_____ has quit (Remote closed the connection).
20:50:21 -!- Sgeo has joined.
21:28:19 -!- GregorR-L has joined.
21:29:03 -!- jix has left (?).
21:34:22 -!- GregorR_______ has joined.
21:34:24 -!- GregorR______ has quit (Remote closed the connection).
21:42:21 -!- GregorR_______ has quit (Read error: 104 (Connection reset by peer)).
21:43:37 -!- GregorR_______ has joined.
21:54:16 * pgimeno wonders how many _'s will FreeNode support
21:55:17 <fizzie> 20:55:32 [freenode] ... IRCD=dancer CAPAB CHANTYPES=# EXCEPTS INVEX CHANMODES=bdeIq,k,lfJD,cgijLmnPQrRstz CHANLIMIT=#:20 PREFIX=(ov)@+ MAXLIST=bdeI:50 MODES=4 STATUSMSG=@ KNOCK NICKLEN=16 are supported by this server
21:56:19 <fizzie> (Assuming all freenode servers agree on that NICKLEN, which sounds like a safe assumption.)
21:56:19 <lindi-> maybe GregorR_______ should use some RLE scheme for his nick to support more underscores
21:56:40 -!- pgimeno has changed nick to pgimeno_{32}.
21:57:48 * pgimeno_{32} doesn't change his nick to pgimeno_{837} to avoid buffer overflows in clients
21:58:05 -!- pgimeno_{32} has changed nick to pgimeno.
22:01:58 -!- GregorR_______ has quit (Remote closed the connection).
22:02:35 -!- GregorR_______ has joined.
22:06:26 -!- GregorR-L has quit (Read error: 113 (No route to host)).
22:18:49 -!- GregorR________ has joined.
22:18:50 -!- GregorR_______ has quit (Remote closed the connection).
23:17:39 -!- Sgeo has quit.
23:24:57 -!- GregorR_________ has joined.
23:26:28 -!- GregorR________ has quit (Read error: 104 (Connection reset by peer)).
23:45:52 -!- GregorR_________ has quit (Remote closed the connection).
23:46:01 -!- GregorR_________ has joined.