00:03:52 -!- Sgeo has joined. 00:05:14 -!- jcc has quit (Remote closed the connection). 01:33:03 -!- oerjan has quit ("Good night"). 02:30:38 Anyone here? 02:30:42 pikhq? SimonRC? 02:30:52 bsmntbombdood? 02:30:57 what? 02:31:01 Hello 02:31:21 * Sgeo is thinking up how to handle unsafe functions in PSOX 02:31:33 But it's a bit involved 02:31:38 * Sgeo goes to write up specs 02:33:09 Jes? 02:33:21 ^^ 02:37:35 * Sgeo silently changes a command around in the PSOX spec 02:44:47 -!- navaburo has quit (Success). 02:47:57 Congrats to anyone who figures it out! 02:52:54 * bsmntbombdood hasn't been paying attention to this psox stuff 03:33:30 hm, maybe I shouldn't have Unsafe functionality be as complicated as I'm imagining it... 03:54:55 http://sgeo.diagonalfish.net/esoteric/psox-exit-demo.b 03:56:42 * pikhq approves 03:57:02 Looks like it ought to be easy to implement PEBBLE macros for it. :) 03:57:33 I may want to add the "if-provided" feature that I've been meaning to, though. 03:58:03 if-provided? 03:58:32 To test to see if a compiler provides certain features. . . 03:58:51 PSOX isn't part of the compiler.. 03:58:58 if-provided PSOX {code}, for example, to test to see if PSOX is supported in the target language. 03:59:32 Some of the target languages mightn't allow for PSOX. 03:59:42 pikhq, examples? 03:59:54 C. Interpreter backend. 04:00:11 Also useful if I want to do PSOX-specific versions of macros. . . 04:00:32 PSOX has to be enabled at the beginning of the program.. 04:00:50 Clearly, you don't get what I mean. 04:00:59 I probably don't :( 04:01:25 Trying to allow for one bit of source-code to compile to something which uses PSOX and something which doesn't. 04:02:02 oh 04:03:14 Question: Is it ok if a program has to declare that it wants to use unsafe features at the beginning, before doing anything else? 04:04:53 As far as I'm concerned: yes. 04:06:24 Did you catch what function I switched around? 04:07:39 No, I've not looked. 04:09:38 check 04:10:47 Give up? 04:11:04 Not even started to bother. 04:11:25 Want to know? 04:11:27 Sure. 04:11:42 * Sgeo switched [0x00 0x01 0x00] 0x00 0x06 to [0x00 0x01 0x00] 0x00 0x07 04:12:01 Ah. 04:14:21 It's so I can place the Request Unsafe Functionality there 04:14:35 * pikhq nods 04:14:45 Since 6, with it's relation to 666, and the fact that it's unsafe.. 04:14:50 >.> 04:28:33 Igh, too tired to work on this now.. 04:28:35 G'night 04:33:21 -!- Sgeo has quit ("Ex-Chat"). 04:37:03 -!- calamari has joined. 04:43:07 -!- poiuy_qwert has joined. 05:33:27 -!- bsmntbombdood has quit (Read error: 110 (Connection timed out)). 05:33:50 -!- bsmntbombdood has joined. 05:36:18 -!- dibblego has joined. 05:59:55 -!- poiuy_qwert has quit. 06:14:30 -!- calamari_ has joined. 06:14:39 -!- calamari_ has quit (Read error: 104 (Connection reset by peer)). 06:15:27 -!- Sukoshi has quit ("Stuffs."). 07:38:32 -!- mtve has joined. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:27:55 -!- calamari has quit ("Leaving"). 08:54:44 -!- Tritonio has joined. 09:12:32 -!- SimonRC has quit (No route to host). 09:27:10 -!- Naranek has joined. 10:09:14 -!- tappi has joined. 10:15:47 -!- puzzlet_ has quit (Read error: 104 (Connection reset by peer)). 10:16:08 -!- puzzlet has joined. 11:02:12 -!- lakupuu has joined. 11:03:53 -!- jix_ has joined. 12:08:32 -!- oerjan has joined. 12:13:26 -!- c1|freaky has left (?). 12:13:51 -!- ehird` has joined. 12:14:11 -!- ehird` has quit (Client Quit). 12:27:55 -!- ehird` has joined. 13:06:21 -!- Karnaugh has joined. 13:07:15 Could somebody please open a socket to microsoft.com on port 80? 13:11:00 http://www.microsoft.com loads fine here 13:11:41 this language doesn't work very well 13:18:57 oh it was IRP? 13:19:17 i just translated your instruction to a higher level :) 13:21:38 then you are a bug 13:21:43 :P 13:22:02 * oerjan chirps like a cricket 13:22:12 or whatever it's called 13:27:23 -!- Tritonio has quit (Remote closed the connection). 13:33:24 -!- jix_ has quit (Read error: 104 (Connection reset by peer)). 13:39:55 -!- chton_ has joined. 13:39:55 -!- chton has quit (Read error: 104 (Connection reset by peer)). 13:41:57 -!- jix_ has joined. 13:57:36 -!- Tritonio has joined. 14:36:03 -!- oerjan has quit ("Dinner"). 14:55:37 -!- RedDak has joined. 15:43:46 -!- RedDak has quit (Remote closed the connection). 16:04:23 -!- tappi has quit. 16:15:21 -!- sebbu has joined. 16:23:06 -!- SimonRC has joined. 18:22:27 -!- helios24 has quit (heinlein.freenode.net irc.freenode.net). 18:22:27 -!- bsmntbombdood has quit (heinlein.freenode.net irc.freenode.net). 18:22:28 -!- sp3tt has quit (heinlein.freenode.net irc.freenode.net). 18:23:10 -!- bsmntbombdood has joined. 18:23:10 -!- helios24 has joined. 18:23:10 -!- sp3tt has joined. 18:33:36 -!- bsmntbombdood has quit (Connection timed out). 18:34:30 -!- bsmntbombdood has joined. 18:41:39 -!- oklopol has joined. 18:43:07 -!- ololobot has joined. 18:43:20 mörning y'all 18:44:48 >>> sch (define (cons a b) (lambda (n) (cond ((= n 0) a) (1 b))))(define (car a) (a 0))(define (cdr a) (a 1))(cdr (car (cons (cons 1 2) (cons 3 4)))) 18:44:48 num:2 18:45:51 hmm.. wonder if i should actually add those primitively... they might be a bit essential 18:48:12 writing a scheme? 19:04:53 oklopol: make NOTHING primitive that you can't 19:05:20 oklopol: I assume + is (- x (neg y))? ;) 19:08:17 lament: i wrote one on friday, yeah, just didn't make that much primitives, since i was lazy 19:09:07 hmm 19:09:17 it should now save stuff between runs 19:09:23 but prolly doesn't. 19:09:28 >>> sch (define oko 5) 19:09:32 >>> sch (* oko 8) 19:10:53 guess i should try and fix that 19:11:13 i need a better brain, always making mistakes in trivial code... 19:17:11 -!- ehird` has quit (Remote closed the connection). 19:17:52 eh 19:18:02 now it works... didn't change the code. 19:18:27 sch (define (cons a b) (lambda (n) (cond ((= n 0) a) (1 b))))(define (car a) (a 0))(define (cdr a) (a 1)) 19:18:36 >>> sch (define (cons a b) (lambda (n) (cond ((= n 0) a) (1 b))))(define (car a) (a 0))(define (cdr a) (a 1)) 19:18:37 None 19:18:41 hmm 19:18:51 >>> sch (car (cons 5 6)) 19:18:55 .. 19:18:56 num:5 19:19:00 oh 19:19:01 cool 19:19:10 my scheme has lists \o/ 19:19:13 well, somewhat 19:26:48 -!- ololobot has quit (Remote closed the connection). 19:27:06 haha, guess i should continue debugging offline :D 19:27:19 -!- importantshock has joined. 19:29:45 hehe 19:42:24 -!- importantshock has quit. 19:56:19 -!- oerjan has joined. 20:21:12 -!- oerjan has quit (Remote closed the connection). 20:21:16 -!- oerjan has joined. 20:22:08 -!- ololobot has joined. 20:23:15 insisted on using primitive lists and was lazy, so i don't have stuff like (2 3 4 . 5) 20:23:44 but it should work as long as you use cons just with a list as r-param... 20:24:06 >>> sch (cons 3 ()) 20:24:06 (num:3) 20:26:20 >>> sch (define o 7) 20:26:20 () 20:26:26 >>> sch o 20:26:26 num:7 20:27:56 >>> sch (cons 3 3) 20:27:56 err:cons-not-def-for:num:3 20:28:17 * oerjan had hoped for a spectacular crash 20:28:24 -!- bsmntbombdood has quit (Read error: 110 (Connection timed out)). 20:29:00 hehe 20:29:12 i don't think you can crash it 20:29:21 the bot that is 20:29:28 you can crash the interpreter though 20:30:23 >>> sch (undef o) 20:30:24 None 20:30:27 >>> sch o 20:30:28 None 20:30:41 is "undef" a scheme command? 20:30:47 i mean, does that exist in scheme 20:31:13 i'll gogulate? good idea 20:31:41 gogulare necesse est 20:32:21 i can't find such a command 20:32:51 >>> sch (define (k a) (lambda (b) a)) 20:32:52 () 20:32:57 >>> sch ((k 4) 5) 20:33:01 umm 20:33:30 >>> sch (define k (lambda (a) (lambda (b) a))) 20:33:31 () 20:33:34 >>> sch ((k 4) 5) 20:33:38 >>> sch (k 4) 20:33:44 GLAH. 20:34:34 i guess i broke the whole thing when adding lists, had to make a gigantic refactoring 20:34:55 you'd think i'd've debugged after that, but noooo 20:42:25 >>> sch ((k 6) 7) 20:42:26 num:6 20:42:30 yay 20:42:41 >>> sch (define (i a) a) 20:42:42 () 20:42:43 hm 20:42:48 >>> sch (i 5) 20:42:55 heh 20:43:10 >>> sch (define i (lambda (a) a)) 20:43:11 () 20:43:12 >>> sch (i 5) 20:43:12 num:5 20:43:18 wonder what that was about. 20:43:24 >>> sch (+ 5 5) 20:43:25 num:10 20:43:41 >>> sch (if (< 0 1) 1 2) 20:43:42 num:1 20:43:42 oh 20:43:45 s 20:44:18 >>> sch (define s (lambda (a) (lambda (b) (lambda (c) ((a c) (b c)))))) 20:44:18 () 20:44:21 is that correct? 20:44:36 hmm 20:44:41 >>> ul ```skk6 20:44:51 >>> ul ```skki 20:44:51 -> i 20:44:55 >>> ul ```skka 20:44:56 -> a 20:45:14 >>> sch (s (k (k 3))) 20:45:14 20:45:23 umm... 20:45:25 oh 20:45:35 >>> sch (((s k) k) 3) 20:45:49 sch (define fib (lambda (n) (if (< n 2) 1 (+ (fib (- n 1) (- n 2)))))) 20:45:50 :< 20:45:54 >>> sch (define fib (lambda (n) (if (< n 2) 1 (+ (fib (- n 1) (- n 2)))))) 20:45:55 () 20:45:58 :\ 20:46:02 that oughtta work... 20:46:08 >>> sch (fib 5) 20:46:09 num:1 20:46:14 eh 20:46:17 -!- bsmntbombdood has joined. 20:46:18 eek 20:46:24 (fib (- n 1) (- n 2)) <<< sure about this? :) 20:46:37 er, no 20:46:52 >>> sch (define fib (lambda (n) (if (< n 2) 1 (+ (fib (- n 1)) (fib (- n 2))))))) 20:46:53 () 20:46:57 >>> sch (fib 5) 20:46:58 hmm 20:46:58 num:8 20:47:04 cewl 20:47:20 it doesn't optimize tail recursion, so be gentle :) 20:47:26 warning: big numbers not recommended 20:47:33 ? 20:47:41 >>> sch (fib 20) 20:47:41 this fib is not even tail recursive :) 20:47:42 ah 20:47:44 yeah :P 20:48:03 num:10946 20:48:21 but... my combinators :< 20:48:25 why didn't they work.. 20:48:35 >>> sch (define s (lambda (a) (lambda (b) (lambda (c) ((a c) (b c)))))) 20:48:35 () 20:48:39 s 20:48:41 >>> sch s 20:48:42 20:48:47 >>> sch (s 1) 20:48:48 20:48:52 >>> sch ((s 1) 1) 20:48:53 20:48:58 >>> sch (((s 1) 1) 1) 20:49:36 i 20:49:37 don't 20:49:38 get 20:49:39 it 20:49:56 what should it give? 1 is not a function is it? 20:50:09 no 20:50:09 but 20:50:16 >>> sch (((s k) k) 3) 20:50:22 shouldn't that be i? 20:50:46 indeed 20:50:58 >>> sch (define s-guy (lambda (a) (lambda (b) 9))) 20:50:58 () 20:51:13 >>> sch (define s-boy (lambda (a) 0)) 20:51:14 () 20:51:28 >>> (((s s-guy) s-boy) 6) 20:52:26 >>> sch (define a (k 5)) (define b (k 6)) (+ (a 7) (b 8)) 20:52:27 num:11 20:52:34 static scoping should work fine 20:52:42 so... what's wrung :< 20:53:01 guess i'll debug... ASDF 20:56:04 >>> sch ((k 1) 2) 20:56:04 num:1 20:57:12 -!- bsmntbombdood_ has joined. 20:57:58 >>> sch (((s (lambda (x) (lambda (y) (+ x y)))) (lambda (y) (+ y 1))) 1) 20:57:59 err:not-callable(num:5) 20:58:21 5? 20:58:29 >>> sch (((s k) k) 4) 20:58:30 err:not-callable(num:5) 20:58:31 oh 20:58:47 that must be broken in a very weird way. 20:59:33 hmm... 20:59:45 you could try first doing what s does manually 20:59:48 so... 21:00:14 >>> sch (((lambda (x) (lambda (y) (+ x y))) 1) ((lambda (y) (+ y 1)) 1)) 21:00:20 eh 21:00:21 okay. 21:00:43 >>> sch((lambda (y) (+ y 1)) 1) 21:00:45 >>> sch ((lambda (y) (+ y 1)) 1) 21:00:46 num:2 21:01:03 >>> sch (((lambda (x) (lambda (y) (+ x y))) 1) 2) 21:02:05 okay, if that doesn't work, then the problem can't be that deep 21:02:15 i mean, it prolly isn't deep 21:02:23 wonder what could do that... 21:03:06 -!- bsmntbombdood has quit (Connection timed out). 21:05:00 the problem is i haven't done python list -> my own list wrap yet for all the lambda code... i think... 21:06:17 >>> sch (((lambda (x) (lambda (y) (+ x y))) 1) 2) 21:06:17 num:3 21:06:25 >>> sch (((lambda (x) (lambda (y) (+ x y))) 1) ((lambda (y) (+ y 1)) 1)) 21:06:26 num:3 21:06:33 >>> sch (((s k) k) 4) 21:06:39 .. 21:06:46 >>> ((k 4) 6) 21:06:57 for a minute i thought it workde. 21:07:00 *worked 21:07:43 >>> sch (((s (lambda (x) (lambda (y) (+ x y)))) (lambda (y) (+ y 1))) 1) 21:08:59 eh 21:09:04 it's offline now 21:09:04 wait 21:09:12 online 21:09:16 >>> sch (((s (lambda (x) (lambda (y) (+ x y)))) (lambda (y) (+ y 1))) 1) 21:09:25 >>> sch s 21:09:26 None 21:09:32 but... it worked a second ago... it's just not working online :\ 21:09:33 and oh 21:09:45 >>> sch (define s (lambda (a) (lambda (b) (lambda (c) ((a c) (b c)))))) 21:09:46 () 21:10:00 >>> sch (((s (lambda (x) (lambda (y) (+ x y)))) (lambda (y) (+ y 1))) 1) 21:10:01 >>> sch (define k (lambda (a) (lambda (b) (a)))) 21:10:01 num:3 21:10:02 () 21:10:04 >>> sch (define k (lambda (a) (lambda (b) a))) 21:10:04 () 21:10:13 it worked 21:10:18 cewl 21:10:23 >>> sch (((s k) k) 4) 21:10:24 num:4 21:10:28 \o/ 21:10:59 >>> sch (define i (lambda (a) a)) 21:10:59 () 21:11:15 the problem was in my function for checking what variable names a function uses for the purpose of clozeurs. 21:11:30 >>> sch (i 4) 21:11:30 num:4 21:11:51 >>> sch ((lamdba (x) (list x (list (quote quote) x))) (quote (lamdba (x) (list x (list (quote quote) x))))) 21:12:14 hmm 21:12:17 list 21:12:19 spelling lambda correctly might help 21:12:19 i'll make that 21:12:36 i don't have list, didn't remember that existed 21:12:57 >>> sch (((s i) i) ((s i) i)) 21:12:59 bah 21:13:09 >>> (define (list . x) x) 21:13:13 >>> sch (define (list . x) x) 21:13:14 () 21:13:21 >>> sch ((lambda (x) (list x (list (quote quote) x))) (quote (lambda (x) (list x (list (quote quote) x))))) 21:13:21 None 21:13:29 bsmntbombdood_: also "." doesn't exist yet 21:13:32 it's a bit stub. 21:14:49 hmm 21:14:53 >>> sch (list 1 2 3) 21:14:53 * oerjan wonders if his infinite loop is still running 21:14:53 (num:1 num:2 num:3) 21:15:02 oerjan: stack overflow in a millisecond 21:15:15 >> sch ((lambda (x) (cons x (cons (cons (quote quote) (cons x (quote ()))) (quote ())))) (quote (lambda (x) (cons x (cons (cons (quote quote) (cons x (quote ()))) (quote ())))))) 21:15:24 hmm 21:15:25 >>> sch ((lambda (x) (cons x (cons (cons (quote quote) (cons x (quote ()))) (quote ())))) (quote (lambda (x) (cons x (cons (cons (quote quote) (cons x (quote ()))) (quote ())))))) 21:15:44 >>> sch (quote quote) 21:15:45 spc:quote 21:15:49 hmm 21:16:37 >>> sch (eval (+ `(quote) `(5)) 21:16:38 num:5 21:16:48 those are first-class, methinks 21:16:56 quasiquote! 21:17:15 >>> sch (define a (lambda (a) (a (5)))) 21:17:16 () 21:17:25 >>> sch (a quote) 21:17:26 err:not-callable(spc:quote) 21:17:29 (5)? 21:17:32 darn. 21:17:39 oh 21:17:40 well yeah, if quote is first-order... 21:17:51 macros aren't first order in scheme 21:17:59 they should be though 21:18:02 yeah 21:18:07 i haven't followed any spec 21:18:20 first-order and first-class aren't quite same, me thinks 21:18:24 i was just in my friends hallway waiting for him to come and programmed that... 21:18:27 *the 21:18:39 and i don't know much about scheme 21:18:53 but... i gotta fix that, i want them to be first order... 21:18:57 ah 21:18:58 eh 21:19:01 first-class 21:19:41 umm 21:19:45 >>> sch (quote (5)) 21:19:46 (num:5) 21:19:49 i wrote a scheme with first class macros 21:19:54 >>> sch (eval `(quote (5))) 21:19:54 (num:5) 21:20:49 hmm 21:20:57 >>> sch (a quote) 21:24:04 >>> sch `(quote (+ 1 2)) 21:24:26 it's offline, debugging 21:24:49 hmm... i should add an error message for bad requests... 21:25:09 !this does it, and ! is quite a lot more probable prefix for a random message than >>> 21:25:13 Huh? 21:25:13 oh 21:25:16 yeha 21:25:19 eyahyae 21:27:15 oh... darn, (a (5)) isn't considered a special form since what is evaluated and what is not is decided at the beginning of the eval-function... 21:27:35 the pattern (id num) will lead to normal evaluation 21:27:51 for first class macros i assume you need to evaluate the first element first, before deciding on the rest 21:27:53 hmm... guess i could fix that... but that's another refactoring... GADS 21:27:56 yeah 21:28:03 and that's exactly what i don't do yet 21:29:08 > liftM2 (,) [1..5] [1..5] 21:29:50 Wong Chan-Nel, my old nemesis, so we meet again 21:31:26 :P 21:31:29 you never learn! 21:31:49 (define a (lambda (b) (b (5)))) 21:31:49 (a quote) 21:31:52 eh 21:31:54 at least you get to learn - a little haskell 21:32:00 >>> sch (define a (lambda (b) (b (5)))) 21:32:01 () 21:32:06 >>> sch (a quote) 21:32:07 (num:5) 21:32:12 "a quote" 21:32:15 hahaha 21:32:34 anyway, i think it has first-class macros now 21:32:53 what's liftM2 then, oerjan 21:32:54 ? 21:33:13 i'll code it in scheme 21:34:15 lakupuu: great nick :D 21:34:54 i'm pretty sure that change broke everything else, though 21:35:01 i mean that first-class zippidy 21:35:25 >>> sch ((lambda (x) (cons x (cons (cons (quote quote) (cons x (quote ()))) (quote ())))) (quote (lambda (x) (cons x (cons (cons (quote quote) (cons x (quote ()))) (quote ())))))) 21:35:43 >>> sch (quote ()) 21:35:44 () 21:36:21 >>> sch ((lambda (x) (x (a b))) quote) 21:36:22 (id:a id:b) 21:36:26 uh 21:36:28 hey hey hey 21:36:29 oh 21:36:52 bsmntbombdood_: is that supposed to be a quine? 21:36:55 eh 21:37:04 why am i asking, i just checked with drscheme 21:37:06 :DD 21:37:41 >>> sch (cons (cons (quote quote) (cons x (quote ()))) 21:37:50 >>> sch (quote quote) 21:37:51 spc:quote 21:38:04 >>> sch (cons x (quote ())) 21:38:05 (None) 21:38:06 >>> sch (cons x (quote ()) 21:38:07 (None) 21:38:08 ... 21:38:15 oh 21:38:17 haha 21:39:55 spc? 21:40:03 and that type prefix is annoying 21:41:44 oklopol: liftM2 f cmd1 cmd2 = do x <- cmd1; y <- cmd2; return (f x y) 21:41:59 however, liftM2 (,) on lists is cartesian product 21:42:24 hmm 21:42:28 other monads will differ 21:42:44 bsmntbombdood_: i know, i'm gonna take it away soon, it was for debugging purposes 21:43:27 oerjan: i decided not to program it in scheme. 21:43:34 >>> sch ((lambda (x) (cons x (cons (cons (quote quote) (cons x (quote ()))) (quote ())))) (quote (lambda (x) (cons x (cons (cons (quote quote) (cons x (quote ()))) (quote ())))))) 21:43:57 umm... kay 21:43:57 i was sort of expecting that :D 21:43:59 >>> sch () 21:44:00 () 21:44:04 hmm 21:44:13 i guess it's just too long with the type prefixes 21:44:31 i'll remove 21:44:39 perhaps if i write a pure list version with functions: 21:44:53 >>> sch () 21:44:54 () 21:44:56 >>> sch 5 21:44:57 5 21:45:00 >>> sch ((lambda (x) (cons x (cons (cons (quote quote) (cons x (quote ()))) (quote ())))) (quote (lambda (x) (cons x (cons (cons (quote quote) (cons x (quote ()))) (quote ())))))) 21:45:06 . 21:45:18 it just worked, i saw it with my own i's 21:46:10 >>> sch (5) 21:46:11 not-callable(5) 21:46:21 >>> sch ((lambda (x) (cons x (cons (cons (quote quote) (cons x (quote ()))) (quote ())))) (quote (lambda (x) (cons x (cons (cons (quote quote) (cons x (quote ()))) (quote ())))))) 21:46:50 ((lambda (x) (cons x (cons (cons (quote quote) (cons x (quote ()))) (quote ())))) (quote (lambda (x) (cons x (cons (cons (quote quote) (cons x (quote ()))) (quote ())))))) <<< this is output if i run from command line 21:47:23 and the bot just effectively calls that same function and outputs what comes out... 21:48:03 >>> sch (((lambda (x) (x x)) (lambda (self) (lambda (a b) (if (= b 0) a ((self self) (+ a 1) (- b 1)))))) 4 5) 21:48:03 9 21:48:07 what's the max message lenght? 21:48:09 yay 21:48:10 *length 21:48:24 512? 21:48:27 256? 21:48:30 176? 21:49:23 bsmntbombdood_: what does x do there? :P 21:49:24 liftM2 f l1 l2 = concatMap (\x -> map (\y -> f x y) l1) l2 21:49:58 that's the Y combinator 21:50:19 Eidolos: i know, that doesn't answer my question 21:50:49 also, message length? :) 21:51:09 that quine isn't working because max length for ololobot is 137 characters? 21:51:12 *-? 21:52:01 if you don't answer soon, i swear i'm gonna *google* :| 21:53:42 oklopol: thx 21:53:47 ^^ 21:54:27 liquorice tree 21:54:44 LIQUOR TREE??? 21:54:55 no 21:54:58 liquor ICE 21:55:03 like frozen booze 21:55:07 message length may vary between irc servers i think, although there is some minimum 21:55:07 LICK HER EYES? 21:55:42 GregorR: is there something wrong in doing that? 21:56:11 NO, I JUST WUV THE SHIFT KEY 21:56:18 i am sure a finnish guy would appreciate a liquor tree 21:56:36 -!- ololobot has quit (Read error: 104 (Connection reset by peer)). 21:56:55 -!- ololobot has joined. 21:56:59 and that the liquorice might only apply during harsh winters 21:57:05 >>> sch ((lambda (x) (cons x (cons (cons (quote quote) (cons x (quote ()))) (quote ())))) (quote (lambda (x) (cons x (cons (cons (quote quote) (cons x (quote ()))) (quote ()))) 21:57:06 ((lambda (x) (cons x (cons (cons (quote quote) (cons x (quote ()))) (quote ())))) (quote (lambda (x) (cons x (cons (cons (quote quote) (cons x (quote ()))) (quote ())))))) 21:57:13 bot loop time!!!!!!!!11 21:57:26 :D 21:58:19 oerjan: i don't do much alcohol nowadays 21:58:31 (just updating your statistics) 21:58:52 (i'm sure that changed the finnish average use) 21:59:14 i was just attempting a stereotypic joke, but i guess the finnish don't understand those 21:59:36 (the swedes certainly don't) 22:00:38 oerjan: i did understand it, mine was a follow-up joke though. 22:00:38 that's all american jokes are 22:00:51 "a rabii, and preist, and a blonde walk into a bar..." 22:00:53 blech 22:01:54 wish i had food 22:02:57 SO, A JEWISH GUY, A CATHOLIC, A MORMON AND A CHRISTIAN WALK INTO A BAR. THE CHRISTIAN SAYS "I'M AMERICAN YOU ALL HATE JESUS LOLOLOLOLOLOLOL" 22:03:50 i don't believe in religions 22:04:15 gonna eat the most edible thing in the kitchen, unless poisonous -> 22:04:30 watch out, potted plants" 22:04:33 *! 22:04:50 although i guess those died long ago 22:05:15 oh right, food... afk 22:05:28 i don't have a pot jungle yet, since my parents live here too. 22:05:51 i want some food 22:05:55 hmm... pot = amphetamine? 22:06:04 uuuuuuuuuhhh no 22:06:07 -!- bsmntbombdood_ has changed nick to xor. 22:06:07 ur whut 22:07:13 i read a long list of drug slang terms, after that i only knew balling is inserting heroin vaginally. 22:07:25 well read. 22:07:50 aah yes 22:08:07 i read an acount of a bunch of dykes trying a bunch of drugs vaginally 22:08:33 i can imagine taht 22:08:34 *that 22:09:51 um, potted plant = plant living in a pot. i guess your parents living there increases the chances of them surviving. 22:10:21 yeah, they'd also bought me food. 22:11:03 so... plants are safe 22:22:57 oerjan: i also got that joke btw, i'll promise to laugh at your next joke so you don't have to explain it :) 22:23:05 i mean, got it when you said it 22:23:06 not now 22:23:10 that's be a bit slow 22:23:14 *that'd 22:25:34 does scheme have monads? 22:25:42 they say it has everything. 22:26:01 not built in 22:28:57 there have been made monad libraries for scheme, is my understanding 22:30:42 there is a theorem that says if you have continuations and mutable variables, then you can do everything monads can do in ordinary syntax 22:31:11 and scheme does have those 22:31:54 although you don't get the haskell type tricks that go with them, i guess 22:32:07 monads are ugly 22:34:11 oerjan: by "ordinary syntax" you mean, instead of bind you use actual semicolons? 22:34:46 and let 22:35:10 afaiu 22:35:36 xor: i agree they're ugly 22:35:53 the entire area is still being developed 22:36:12 the ugliness is probably temporary 22:36:51 the solution is mutable variables 22:37:41 is that what clean does? 22:37:47 oh 22:37:55 you mean what C does? :) 22:38:22 what scheme does 22:38:25 clean has uniqueness types 22:39:08 it does mutation when the types prove the original value is no longer used 22:39:36 (because the value had a unique reference, which was discarded) 22:40:38 oerjan: have you played with it? is it more convenient? 22:41:03 xor: then it's not a solution to the problem monads try to solve. 22:41:25 it was in the monad paper i read 22:43:13 nope, just read a bit 22:44:57 oerjan: i'm not at all convinced monads are the optimal... things get very hairy with transformers 23:31:44 -!- sebbu has quit ("@+"). 23:45:25 >>> sch "foo" 23:45:26 None 23:45:42 hmm 23:45:49 i actually thought i had strings 23:45:53 guess i didn't. 23:46:59 hmm 23:47:04 there are no strings attached 23:47:10 >>> sch (define "o" 3) "o" 23:47:11 3 23:47:19 oerjan: haha :P 23:47:26 (see? i get them) 23:47:31 >>> sch (define define define) define 23:47:32 define 23:47:41 heh 23:47:47 i was going to tell you if you didn't :) 23:47:49 >>> sch (define) 23:48:12 >>> (define define 5) define 23:48:23 oh 23:48:37 did i kill it 23:48:40 >>> sch 4 23:48:41 4 23:48:43 no 23:49:13 but... hmm 23:49:21 why can't you redefine define... 23:50:01 hmm, macros are first class but the names aren't 23:50:02 err 23:50:05 or something like that 23:50:17 >>> sch define 23:50:18 define 23:50:46 you can't see the prefix now, but that's not a variable name with the primitive macro "define" in it, it's the actual macro 23:51:09 that's not good... guess i should do some massive refactoring 23:51:41 >>> sch (define + 5) + 23:51:42 5 23:51:48 >>> sch (+ 6 7) 23:51:48 13 23:52:31 i made it restore primitives eash run, because i like to ruin ppl's fun 23:56:03 >>> ((lambda (a) (eval (a b 6))) define) b 23:56:08 hmm 23:56:29 >>> ((lambda (a) (eval `(a b 6))) define) b 23:57:05 eh 23:58:05 darn, more stuff i gotta add to that 23:58:18 scheme has a lot more stuff than i imagined... 23:58:45 that minimalism thing is just a scam... 23:59:09 hmm... how do you use "define" inside a function? 23:59:21 i mean 23:59:29 do you have to use let... i don't remember 23:59:36 i don't have let either :<<< 23:59:46 soooooo many synonyms