00:01:25 oh, happy 2008 00:02:12 -!- Traveler2 has joined. 00:02:27 -!- pikhq has quit (Read error: 104 (Connection reset by peer)). 00:03:06 -!- Traveler2 has quit (Client Quit). 00:16:32 ΧΧΠΙΙΙ 00:16:47 not for another 7 hours 00:16:59 no 00:17:01 it's 00:17 00:17:01 :P 00:17:05 in gmtland 00:17:06 no 00:17:09 it's 17:17 00:17:20 (getchar()+1 || 1) - 1 /* clever trick for a BF-getchar */ 00:22:47 二千八 00:23:57 hello calamari 00:24:05 hi ehird` 00:25:44 -!- pikhq has joined. 00:26:23 hello pikhq 00:27:08 ‫תשס״ח 00:27:22 damnit haskell 00:28:13 What does this mean? Happy jew year? 00:28:40 hahaha 00:30:06 ፳፻፰ 00:30:30 hope you guys have all these fonts, otherwise sorry for the line noise :) 00:30:50 Don't have the last one. 00:30:59 all but last 00:31:28 random esoteric idea 00:31:36 there's probably irc-alikes with s-expressions 00:31:39 Ge'ez or Ethiopic has been assigned Unicode 3.0 codepoints between U+1200 and U+137F 00:31:51 but what about irc alikes with stack-based text 00:31:51 like forth 00:31:51 or postscript 00:32:12 Random esoteric idea. Transmit pieces of code to a million monkey with a million typewriter. 00:32:18 Then, magic happens. 00:32:30 unicode is evil 00:32:56 bsmntbombdood: no, unicode is wonderful 00:32:59 i luff unicode 00:34:19 Why is yunicode evil? 00:35:01 Unicode is full of chars you will never use. 00:35:22 3 terabites of it are just asian characters. 00:35:24 -!- slereah_ has changed nick to Slereah. 00:35:42 English is evil! 00:35:57 English is full of words you will never use. 00:36:11 Slereah: I think asian people may disagree. 00:36:31 The phone book is evil! 00:36:43 The phone book is full of people you will never speak with. 00:36:56 bsmntbombdood 00:37:01 what 00:37:07 And let me not even _start_ on wikipedia. 00:37:07 you keep saying this but I don't understand why 00:37:10 My sister was once bitten by a mse 00:37:39 R6RS is evil, it's full of stuff you'd never want to use. 00:37:41 is that like a moose, except with an Inspector Closeau accent? 00:37:42 oh wait, that's true 00:38:01 Heh. 00:38:01 who the hell wrote R6RS 00:38:07 lol r5rs 00:38:09 *6 00:38:25 faxathisia: various people's arses 00:38:26 Everytime I read this acronym, I can't help but think of a little robot 00:38:37 yeah 00:38:39 R2D2's cousin or something 00:39:29 R2RS was pretty sucky 00:39:29 :P 00:40:06 hebrew don't celebrate new year anyway 00:40:14 not today at least 00:40:42 I'm a jew, and I don't care for the jew calender! 00:40:50 Slereah: are you jewish or are you a jew 00:40:57 hey what a coincedence, i'm not a jew either! 00:40:58 big difference :-) 00:41:09 bsmntbombdood: Slereah *is* a jew 00:41:11 or jewish 00:41:17 Define both terms. 00:41:53 oh i misread 00:42:32 Slereah: Jewish means you adhere to the Abrahamic, one-mega-psychotic God religion 00:42:45 Jew means your heritage is Jewish 00:42:57 I'm an atheist. 00:43:47 http://en.wikipedia.org/wiki/Quinary 00:43:53 someone figure out 2008 in that 00:43:58 :) 00:44:20 I get lost between 100 and 125 00:44:44 according to the calculator I need to encode 401 + 3 00:44:55 31013 00:45:05 err 5 * 401 + 3 00:45:43 1013? 00:46:34 hmph 00:46:37 Hm. Maybe not 00:46:57 Fuck that, I'll just use Mathematica 00:46:58 'hello world' * 'main' channel say 00:47:01 dambumiriw dambumirri rulu vs dambumirri dambumirri rulu 00:47:06 * 'main' channel join 00:47:13 hm. 00:47:31 showIntAtBase 5 intToDigit 2008 "" 00:47:32 31013 00:47:45 Forgot the 3. 00:47:51 pslbnf { primary = /2+2/ => "4" print null }; 00:47:55 (say (channel 'main') 'hello world') -> 'Hello, world!' 'main' channel say 00:52:00 i'm going to write a self-applicable scheme->forth compiler 00:52:02 that is all 00:52:30 what does self-applicable mean\a 00:57:15 faxathisia: it can compile itself 00:57:20 and the result can compile itself again 00:57:20 etc 00:59:28 * oerjan has seen the term self-hosting for this 00:59:36 oerjan: yes 00:59:47 but self-applicable is a better term 01:00:01 self-hosting implies that if you repeat the process multiple times, it'll 'stack up' on self-hosts 01:00:45 -!- bsmntbombdood has quit (Connection reset by peer). 01:01:22 -!- bsmntbombdood has joined. 01:03:56 ehird: Why don't you finish ISWYM first :P 01:05:35 faxathisia: 'cause it'll be a pain in the neck :P 01:12:11 -!- bsmntbombdood_ has joined. 01:17:15 -!- oerjan has quit ("Good night"). 01:17:35 someone should write a brainfuck->unlambda translator 01:17:47 then, reduced-unlambda->ski 01:17:50 then ski->iota 01:17:55 voila, bf->iota 01:18:13 -!- bsmntbombdood has quit (Connection timed out). 01:18:18 I don't feel very motivated right now. 01:18:20 brainfuck->unlambda translator souynds hardest 01:19:01 ok, bf->something-with-a-path-to-ski 01:19:08 How do you even make some sort of memory in Unlambda? Keep pairing elements? 01:19:55 Presumably, consing, yeah 01:20:00 bf->lambda-calculus might be easier 01:20:12 input should be specified in the prog!input form pre-compilation 01:20:22 and output should be extractable, somehow 01:20:36 so with a wrapper script, we could really have the slowest BF interp ever 01:20:47 Even slower than mine? 01:21:09 Don't be so sure, I'm working on a 1 tape version as we speak! 01:21:12 Probably 01:26:13 C question 01:26:24 does a signal handler call unwind the s tack? 01:33:45 brainfuck->unlambda isn't that hard 01:34:01 first just write a brainfuck->scheme 01:34:22 Then a scheme->unlambda. :p 01:34:24 reduced scheme 01:36:43 brainfuck->scheme should be simple, yeah 01:36:55 if you ensure no imperatives, you can ->unlambda 01:36:58 well, you could do imperative IO 01:37:02 but that won't survive the translation 01:37:09 thus output is not in R-unlambda 01:37:28 R-unlambda? 01:41:35 ehird`: No, the signal is called in the current context - the program continues executing where it was when the signal handler ends. So, no unwinding is done. 01:41:53 excellent 01:42:07 so, assuming i can get myself an invalid page in the right place, my signal handler just needs to realloc 01:42:13 the invalid page bit is the hard part 01:42:23 since even mmap makes no guarantees, unless you pass it the right flag, which can then make it fail 01:55:43 GregorR: any bright ideas? 02:24:14 GregorR: pingify 03:15:46 BF on a one tape Turing machine is quite annoying to do. 03:16:03 I don't have a simple way to load a file on it. 04:50:38 -!- GreaseMonkey has joined. 06:14:14 The program and the input both have to be in the tape to start with. Both are finite, and then you put the infinite brainfuck array after them. How are you setting tape state in the first place? 06:14:56 You'll need a marker to distinguish the program from its input. I suggest '!' of course :) 06:17:09 And then to separate the input from the array, hm. Maybe an EOF stored on tape. Then there are 257 tape symbols in total, which makes sense. 06:19:31 Well, of *course* you suggest !. 06:25:14 dbc : No need for input in the program 06:25:23 It's not just any Turing machine! 06:25:27 It's a choice machine! 06:26:17 I think my version work right now. 06:28:20 The tape looks something like this : http://farm3.static.flickr.com/2143/2153953116_145ff9967d_o.jpg 06:28:50 @ indicates the beginning of the code, $ the current position, LF the end of it. 06:29:12 for the beginning of the memory, or for the current position. 06:29:31 -!- faxathisia has left (?). 06:29:48 -!- faxathisia has joined. 06:30:29 Since the machine has to travel most of the memory and code for each instruction, it will probably be a whole lot slower than the 3 tapes version. 06:47:21 So it only handles brainfuck programs that don't take any input? 06:47:33 So, it handles P'' programs? 06:48:01 The Turing machine has an input function. 06:48:07 Ahhh. 06:48:33 choice machine being this : 06:48:35 "For some purposes we might use machines (choice machines or c-machines) whose motion is only partially determined by the configuration (hence the use of the word possible in 1). When such a machine reaches one of these ambiguous configurations, it cannot go on until some arbitrary choice has been made by an external operator. " 06:50:08 That's right, I think you said the 3 tapes version was slow. Why was that? 06:50:24 Well, because it is. 06:50:44 I tried some programs, some never finished 06:51:09 The mandelbrot.b ran for 10 hours, outputing two lines before I turned it off. 06:51:22 Does it average more than ten Turing instructions per brainfuck instruction? 06:51:50 Or did it take a long time to do each Turing machine instruction... 06:52:05 See for yourself! 06:52:07 http://paste-it.net/5500/ 06:52:10 Okay. 06:52:43 The number of instructions isn't fix. But there's less than 5 states per instructions read. 06:53:00 I think it's mostly the fault of the Love Machine 9000. 06:53:47 Well, actually, there's exactly 5 states for the brackets. 06:53:57 But other than that, it's usually 2. 06:54:30 One state to do the instruction, one to go back on the code and increment it. 06:57:08 Ah. Increment it, meaning move the code head right? 06:57:18 Yes. 06:57:32 That's the state g in the code. 07:05:39 I should put the unicode-like version online, too. 07:05:46 Errr, ASCII. 07:26:02 -!- calamari has quit ("Leaving"). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:59:18 -!- GreaseMonkey has quit ("Welcome to 2008. I will be your tour guide."). 10:12:38 http://www.codu.org/wiki/?title=Hydra // card game we invented at the New Years party 10:45:09 -!- slereah_ has joined. 10:57:53 -!- Slereah has quit (Read error: 110 (Connection timed out)). 12:09:24 -!- oerjan has joined. 13:24:13 -!- Hiato has joined. 13:24:25 Wassabi all :) 13:24:28 -!- RedDak has joined. 13:29:41 just chili'ng out... 13:29:58 cool, same here, after last night ;) 13:31:09 oh yeah, happy new year 13:31:17 yip, you too :) 13:31:46 PS: 8tt.org is back so Full 0 now sits back at http://www.full0.8tt.org 13:34:55 -!- Hiato has quit ("Leaving."). 13:50:29 -!- jix has joined. 14:21:05 "the new years party" 14:21:13 GregorR likes to pretend he's sociable 14:21:44 GregorR: it's ok, we understand you here 14:48:06 hey, he didn't say it was an offline party... 14:49:00 hm actually GregorR has to be sociable. he has to show off his hats after all... 14:50:39 Well, he could send photos on the interwebs! 15:11:11 -!- jix has quit (Read error: 145 (Connection timed out)). 15:12:05 -!- jix has joined. 15:25:34 -!- biribau has joined. 15:26:18 hi, prolog basics questions have site here? 15:33:39 -!- oerjan has quit ("Dinner"). 15:39:07 -!- biribau has left (?). 15:47:35 -!- Sgeo has joined. 15:48:59 Hi all 15:52:15 Anyone awake? 15:52:33 * Sgeo threatens to not work on PSOX if no one talks 16:00:47 Hi. 16:01:06 -!- slereah_ has changed nick to Slereah. 16:02:05 hi 16:28:12 wow, er, that's impressive.. i didn't know you could patternmatch lambdas 16:28:12 oklopol: you'd like that! 16:28:16 what? 16:28:29 why :\ 16:36:22 ((?:[^\x00]|\x00{2}(?:.|\Z))*)(\x00.*)? is the most important regex in PSOX? 16:37:38 Can that regex be made more efficient? 17:07:02 -!- Hiato has joined. 17:07:46 Hi Hiato 17:07:58 Wassup Sgeo :) 17:08:09 ((?:[^\x00]|\x00{2}(?:.|\Z))*)(\x00.*)? 17:08:25 say what? 17:08:46 That's the most important regex in PSOX 17:09:12 lol, regexp's are not my strong point :P (especially in Ruby) 17:09:18 Why, what does it do? 17:09:47 breaks a line apart into the outputted text with 0x00 0x00 etc. and the command part with 0x00 17:09:55 aha 17:10:03 oh yeah huh, ^\xoo 17:10:04 :) 17:10:26 so, anything news, perhaps a version I can start meesing with? 17:10:30 *messing 17:11:21 *new 17:11:38 meh, I hat tyops :P 17:12:23 x:xs can be used as a pattern matcher because a list can be represented as just one cons. a+b cannot pattern match because there's an infinite amount of conses for addition, 6=6+0=5+1=... now, if one were to introduce the concept of virtual cons cells into a language, and make a cons be a set of rules of dependence, so that an addition cell knows it's (result - b, result - a). 17:12:25 * Sgeo is working on the psox.types module 17:12:45 this way you could pattern match like the haskell n-1 pattern, but in a more sophisticated fashion. 17:13:11 well, haskell prolly has a much more sophisticated reason for that to work, but i don't know it, and i prefer my own ideas. 17:14:01 ?? 17:14:22 :), I generally prefer my own ideas too, over others that is. Some call it stubbornness ;) Oh, and I agree with Sgeo: ?? 17:15:26 these would be virtual cells of course, so when doing a pattern match for 5 on (n+3), 5 would be converted to an addition cell as (result-b, 3), where b=3 = (2,3), so n=2 17:15:50 IF the conversion into an addition cons cell should fail, the pattern match simply would fail. 17:16:11 this would be correct at least in this case, since only numbers can be subtracted from 17:16:19 I'm still not quite with you... but I guess it's not aimed at me :) (Otherwise ti would be allot longer) 17:16:25 Is this anything to do with PSOX? If so, please be warned that I don't have a drop of understanding of what you're talking about 17:16:51 but, you could also have the possibility to specify domains for which the conversion always works 17:17:13 is this part of the Graphica spec? 17:17:35 oh, right, in case in the final pattern, there were still cells that are defined in terms of other cells, the pattern itself would be incorrect, for example if you tried to pattern matchon (a+b) 17:17:37 *match on 17:17:53 ... 17:18:08 although, that could just take a random cons cell that represents 5 as an addition. 17:18:41 sometimes, all that matters might be that you separate the object into *some* other objects that, when consed, result into the original object. 17:18:56 not in the case of numbers and addition, prolly, but with lists, for example. 17:19:08 Sgeo: is he talking to us? 17:19:20 :) 17:19:30 this is very esolang-related, and not that high-level 17:19:33 so... yes? 17:19:37 anyway, i'll continue 17:19:40 :P 17:19:50 sure, don't let me stop you 17:19:58 If it's PSOX related, you are hereby REQUIRED to translate it into something that makes sense.. 17:20:01 just /ignore me for a while in case not interested, this is just may way to clear my thoughts, if okay. 17:20:22 Sure, proceed 17:20:38 so, for instance quicksort's pivoting, pmatch the list into lpart++[pivot]++rpart 17:20:41 I will interject when (rather if) I have something to say 17:20:47 because all we want is *some* pivot 17:21:15 (++ lpart (++ [pivot] rpart)) 17:21:36 if i didn't have this headache, i'd manually pattern match that 17:21:46 might be an interesting concept 17:22:04 but once again it's so clever yet simple it must already be in use. 17:22:08 er.. yes .. amm.. no .. whichever is more appropraite :) 17:22:18 well, not clever, but... fun? 17:23:07 sorry, was lost in my thoughts, so didn't read what you said between my messages 17:23:22 you didn't *get* that? in that case i'll happily explain 17:23:26 sure, no problem, and believe me, it wasn't important 17:23:28 i just assumed you don't care :-) 17:23:49 lol, I care, but don't *concentrate* 17:23:53 hehe 17:23:53 :) 17:24:01 do you know what pattern matching is? 17:24:14 amm, well yes (I think) 17:24:40 as in "The cat ate the mouse" pattern would be "at' twice? 17:24:47 or not 17:24:48 .... 17:24:51 nevermind 17:24:55 amm.. No 17:24:59 I don't 17:26:11 hehe 17:26:13 sooooo 17:26:20 like, if you have the list [1,2,3] 17:26:26 yip 17:26:33 that's basically (cons 1 (cons 2 (cons 3 nil))) 17:26:38 in lispy fashion 17:26:40 do you get that? 17:26:41 cons? 17:26:49 well, other than the cons, yes 17:26:51 construct, i guess 17:26:55 oh, ok 17:26:56 sure 17:27:08 it means (cons head-of-list tail-of-list) 17:27:14 where tail-of-list is usually the rest of the list 17:27:15 aha 17:27:19 cool 17:27:22 proceed 17:27:32 (with caution ;) ) 17:27:45 now, let's define a function that takes the second element of a list and returns that *2 17:28:03 ok sure 17:28:17 you could do it with L -> (tail tail List) * 2 17:28:26 where tail does (cons a b) -> b 17:28:29 got it? 17:28:33 1 sec 17:28:39 sdfapojoaifjg 17:28:42 sorry. 17:28:47 lol, wait, thinking 17:28:50 L -> (tail head List) * 2 17:28:59 think about the correct one, though :) the latter 17:29:00 ? which one 17:29:02 --- 17:29:04 FUCK. 17:29:06 ok, wait some more 17:29:08 :) 17:29:12 OKAY, that's incorrect too, sorry 17:29:14 headache. 17:29:17 meh 17:29:20 L -> (head tail List) * 2 17:29:36 means, take L as param 17:29:42 ooh 17:29:42 then return what's after -> 17:29:43 ok 17:29:52 wait 17:29:59 tail list of head is 2,3 17:30:02 not just 2 17:30:02 could explain my code if i invent the notation on the fly... 17:30:18 L = 1,2,3 17:30:21 yip 17:30:24 so tail L = 2,3 17:30:28 yes 17:30:30 so head tail L = 2 17:30:35 oh, I see 17:30:39 for a more imperative version 17:30:40 not tail of head 17:30:44 but head of tail 17:30:45 roger 17:30:47 :) 17:30:50 gotcha 17:30:53 im with you 17:31:27 L -> ListTail = tail List; SecondHead = tail ListTail; return SecondHead*2 17:31:33 although you already got it. 17:31:39 i just wanted to write that for some reason 17:31:45 sure 17:31:46 :) 17:32:22 okay, no the idea of pattern matching is, instead of explicitly taking the *head* of a list, we just take the list in as if it were already spliced into a head and a tail. 17:32:24 so 17:33:11 (: 1 (: 2 (: 3 Nil))), ":" is cons here, it's just a shorter word so i don't have to type cons, although this explanation is longer than all the conses i've ever written, so it is pretty useless. 17:33:34 ok 17:33:37 go on 17:33:40 so, we define the function as (: A (: B L)) -> 2*B 17:33:51 so, instead of just putting the param into a variable 17:33:59 we have a pattern we match for the parameter 17:34:10 aha 17:34:14 and inside the pattern, there are variables, that hold the parts of the parameter. 17:34:20 L being significant of the rest of the list? 17:34:32 this works because most data can be, and is often represented by a tree., 17:34:43 which you prolly know? 17:34:49 trees 17:34:51 yip 17:35:00 and somewhat Alpha Bet Pruning 17:35:08 *Alphabeta 17:35:11 and minimaxing 17:35:18 BFStmt=+|-|>|<|[BFStmt]|,|. 17:35:26 no, sorry 17:35:27 hmmm 17:35:31 alphabeta? 17:35:31 what the hell is that 17:35:38 what is what? 17:35:38 never seen it like that 17:35:45 BFStmt=+|-|>|<|[BFStmt]|,|. 17:35:47 oh 17:35:51 you claim it to be alphabeta 17:35:52 just a random notation. 17:35:57 oh, ok 17:36:05 | was jsut my way to separate possibilites for a branch 17:36:18 actually a pretty standard way 17:36:23 i don't know alphabeta... 17:36:25 oh, ok 17:36:36 well, its pruning, like minimaxing 17:36:37 anyway, L was the rest of the rest of the list. 17:36:40 except different 17:36:42 :) 17:36:49 cool 17:37:29 (: A (: B L)) -> 2*B can be written A:B:L->2*B if we notate : as infix and right grouping, right 17:37:31 ? 17:37:41 1:2:3:Nil is the list. 17:37:56 yip 17:37:59 get it 17:38:02 so... we pattern match as 1->A, 2->B, 3:Nil->L 17:38:30 actually, the cons representation is much clearer when you pattern match, just felt it'd look bad if i wrote it on irc. 17:38:34 so, actually L = 1->A, 2->B, 3:Nil 17:38:37 in other words 17:38:44 nope! 17:39:02 L would just be (: 3 Nil) 17:39:09 wa? 17:39:13 because A and B take the first two elements 17:39:18 L only gets the last. 17:39:25 oh, I see 17:39:37 just that the 3:NIL->L got me 17:39:39 yip 17:39:41 3:Nil 17:39:45 is the last one 17:39:48 roger 17:39:51 back with you 17:40:20 in (: A (: B L)) -> 2*B, (: 1[place of A] (: 2[Place of B] (: 3 Nil)[place of C])) 17:40:32 uhh that was ugly. 17:40:44 but 17:40:46 yueah 17:40:48 I get it 17:41:04 (: 3 Nil)[place of C] surely place of L 17:41:12 not C 17:41:13 anyhow, do you see what the function (4+A) -> A*2 would do given 2 as a parameter? 17:41:18 sorry, you are correct 17:41:35 i'm very bad at keeping the details right 17:41:40 sure, no prob 17:41:42 lets see 17:41:55 (4+A) -> A*2 17:41:58 given 2 17:42:17 it cannot actually be executed as straightforwardly as the list one, because a list IS (cons Head Tail), while a number is NOT (+ A B), but just a number. 17:42:18 surely 4 17:42:29 -4. 17:42:33 oh 17:42:39 A-4 * 2 17:42:49 indeed. 17:42:51 was my third guess 17:42:55 :) 17:43:05 (4+A) find such A that (4+A) = param, basically. 17:43:15 yeah, ok 17:43:33 just as the pattern match (: A (: B L)) meant "find A, B and L so that (: A (: B L)) equals the parameter" 17:44:03 ooh, ok, im starting to see the light now 17:44:08 good. 17:44:25 this is a trivial concept, but *very* interesting if you ask me 17:44:41 I'm glad I learnt it :) 17:44:42 not trivial as in "lol you should know it already", i meant like simple 17:44:49 cool 17:45:01 * Sgeo fails to understand Lispy stuff 17:45:19 no worries Sgeop, it took me this long to get it :) 17:45:24 *Sgeo 17:45:26 Sgeo: (Function Argument1 Argument2 ... ArgumentN) 17:45:42 where arguments can be sexps too. 17:46:00 (sexp is (A B C ... N) that is.) 17:46:43 basically, in lisp you take the program, which is a list (A B C .. N), you evaluate B, C.. N first, then evaluate the function A with the evaluated arguments. 17:46:58 B.. N are evaluated just like in A, in a recursive fashion 17:47:06 also, i suck at explaining right now, sorry. 17:47:38 :) No worries, teaching fools is a great gift (with reference to me, for the fools part) 17:47:47 anyway, Hiato: do you see why pattern matching for *any* pattern would be impossible? 17:47:57 i mean, for operators you can define yourself. 17:48:21 yes, infinte possibilties 17:48:25 *infinite 17:48:31 i did not mean that. 17:48:41 in the list case, you can do A:B unambiguously 17:48:42 then, no 17:48:47 yes 17:49:02 and with most operators, you can pattern match on some elements 17:49:08 like 5 -> (A+3) 17:49:17 a=2 17:49:20 sure 17:49:26 and [1,2,3,4,5] -> [1,2,3]++A 17:49:38 -!- RedDak has quit (Remote closed the connection). 17:49:49 a=5 17:49:51 roger 17:50:02 in there, A++B could do any split for a list, BUT if you do [1,2,3]++A you only get one list. 17:50:21 aha, yes, I see 17:50:27 ambiguity in pattern search 17:50:38 results in multiple possibilites 17:50:47 often, that is true for binary operators, : just happens to be an example of an operator where you can do it with two vars 17:50:49 or vagueness 17:50:53 yes, indeed 17:51:00 but, that was not my point 17:51:08 ok 17:51:14 a pattern should never have these ambiguities. 17:51:26 alright 17:51:41 it's the programmer's job to make them correct, and such that there is only one way to cut the object pmatched. 17:51:43 BUT 17:52:56 there is another problem 17:53:11 which is what? 17:53:16 we can make a function, whose converse makes us solve the halting problem or something. 17:53:47 amm.. ok 17:53:56 and, often functions are only easy to do one way, even though they actually have just one converse. 17:54:01 i'll show an example 17:54:13 sure 17:54:16 please do 17:54:18 @ is a function that takes a list of primes, and multiplies them. 17:54:25 ok 17:54:25 easy to implement 17:54:27 understand 17:54:34 no need to go urther 17:54:37 *further 17:54:38 L -> reduce * L 17:54:42 like modulus 17:54:54 modulus? 17:54:57 it doesn't mod :) 17:55:02 it multiplies the elements 17:55:04 no, no 17:55:10 I meant an easy one way thingy 17:55:13 remainder 17:55:17 @ [2,3,3,7] -> 16 17:55:19 5 mod 2 = 3 17:55:19 ... 17:55:26 lol, actually not 16 xD 17:55:27 but 3 * X =5 ? 17:55:34 blah 17:55:40 the other way areound 17:55:46 modulus doesn't have an unambiguous converse :) 17:55:47 but you get what I'm saying 17:55:53 that's the point 17:55:55 :) 17:55:56 no! 17:56:05 with the halting problem 17:56:14 and stuff 17:56:16 the primes 17:56:20 all the same 17:56:22 it's the programmer's job to ensure there always is an unambiguous converse for the function we are cutting. 17:56:27 err 17:56:31 pattern matching 17:56:33 ... 17:56:36 never mind 17:56:40 function we are pattern matching with 17:56:41 ok, anyway proceed 17:56:44 yeah 17:56:55 @ [2,3,3,7] -> 16 17:57:00 we where there 17:57:02 so, no if you have *any number*, you can always do the pattern match @L 17:57:14 and it's always unambiguous. 17:57:14 yes 17:57:17 yes 17:57:22 limited selection of primes 17:57:32 who's product is Number 17:57:34 get it 17:57:41 now, @ does multiplication, it's inverse does factorization. 17:57:48 roger 17:58:14 my idea was just to inject into an operator knowledge about it's reversibility 17:58:42 so, given @, you idea would be to say @(fatcorise) 17:58:43 ? 17:58:54 or !(ambigous) 17:58:56 ? 17:59:01 ? 17:59:19 ! being, say the modulus function 17:59:24 i'll show how it's used, not sure you got me fully here 17:59:26 or did you... 17:59:27 rather !(irreducibnle) 17:59:28 hmm 17:59:36 well, go ahead 17:59:41 provide an example 17:59:50 then I''l be able to say whether I understood or not 18:00:56 well, basically, you could do a factorizing function as follows: first the multiplication of primes: L :: [Prime] -> Int = L -> Product L 18:01:12 let's say our language defines a number type Prime 18:01:16 which represents any prime number. 18:01:26 go on 18:01:33 now, the factorizing function would be "@ L -> L" 18:01:37 whoooops 18:01:43 ... 18:01:45 lost me 18:01:51 @ :: [Prime] -> Int = L -> Product L 18:01:56 you see 18:02:02 aha 18:02:04 yes 18:02:11 @ L means multiply the primes in L to get the number they represent. 18:02:30 so, @ L as a *pattern match* means find such L that @ L is the parameter. 18:02:40 yes 18:02:41 I see 18:02:46 now, since the parameter is an integer, and @ multiplies a list of primes, it would factorize the number. 18:02:52 so kind of linear equationns 18:03:05 yeas 18:03:13 OOOHH OOOH 18:03:13 wait 18:03:21 were we to make @ also check that the list it's used on is sorted, @ L would automatically return a sorted list of prime divisors. 18:03:21 I think I get thwe whole plot 18:03:26 good :) 18:03:48 so, we can't make a universal patten mathcer 18:03:49 now, this is all my own thinking, i don't know if others think about patterns that much. 18:03:50 because 18:03:58 it has no way of knowing what the inverse is?? 18:04:12 rather 18:04:12 that is the basic problem, yes 18:04:16 the inverse procedure 18:04:21 hooray for me :) 18:04:28 and congratulations to you :D 18:04:39 there is a way to find a problem whose inverse is the halting problem 18:04:54 go ahead 18:05:06 it's just half the stuff i *taught* you i made up on the fly, i don't yet have that good an intuition on the general pattern matching. 18:05:12 i have no idea how to construct it. 18:05:16 (PS: THis is actually interesting now that I understand it :) ) 18:05:24 heh, i think so too 18:05:30 hrmm 18:05:31 well 18:05:32 perhaps i should add it into graphica........ 18:05:36 Yeah 18:05:39 that would be nice 18:05:48 not sure how it would come into play 18:05:52 actually, i was thinking, i'd make an esolang that provides automatical converses. 18:05:55 unlence referencing node trees 18:06:07 hrmm 18:06:10 and put it in the "super-turing" category 18:06:13 that would be aweosme 18:06:16 if possible 18:06:19 Oh yeah 18:06:28 then simply give it a function garunteed to terminate 18:06:33 and you solve the halting problem 18:06:38 (Hopefully) 18:07:10 yeah, it could be made a *best-effort* compiler. 18:07:20 Yeah, true 18:07:29 you can actually do stuff like A+3=7 in prolog too. 18:07:30 would be insanely hard though 18:07:36 really? 18:07:37 that just hangs, but it's there. 18:07:43 :) 18:07:44 well yeah, it's just it doesn't find it :) 18:07:58 but, the language allows you to ask it questions it cannot answer. 18:08:03 but I doubt you could go x^2 - 4 = 0 18:08:07 wicked 18:08:08 so, mine isn't more superturing than prolog. 18:08:15 it would be 18:08:25 you can't, and you can't really go A+5=0 either, since it just hangs... 18:08:33 if it could reduce things down to simpler elements 18:08:40 which are by default reducabel 18:08:48 and then solves for, or pmatches 18:08:53 hmm 18:09:09 indeed, i didn't even realize it'd automatically solve equations 18:09:10 so take x^2 - 4 =0 18:09:15 yip 18:09:17 :) 18:09:18 was thinking more list'y. 18:09:27 true 18:09:30 but even so 18:09:33 since i'm more interested in trees and graphs than numbers, usually 18:09:37 it would still be hellkish powerful 18:09:42 oh, I see 18:09:49 but no worries 18:09:56 you get it working in lists 18:10:00 and I gruntee 18:10:04 well, given that the language would *guarantee* that it find the inverse, yes, it would be powerful :) 18:10:09 that it will be able to do anything 18:10:20 :D 18:10:28 what you waiting for, get cracking :) 18:10:38 hehe 18:10:40 oh, hey 18:10:43 every function 18:10:50 is Pattern match -> Variable 18:10:52 xD 18:10:57 but anyway, I still say find things that are unambiguously reducable, and redice them, then pmatch, then build back up 18:10:58 you cannot do *any* computation! 18:11:07 true 18:11:09 very true 18:11:23 well, any computation in the result part. 18:11:37 simply proven by uncertainty principle ;) 18:11:46 actually, you could just have the pattern match, and have the result be a variable with # prepending it or something :) 18:11:50 hmm? 18:11:57 yeah, I like 18:12:05 the yopu can do mathematics in it :) 18:12:19 hrmm 18:12:31 but that would be more difficult to execute 18:12:31 that would actually be *really* esoteric, and actually i'm starting to feel this is quite brilliant! AND then i realize i'm making prolog ;) 18:12:41 ::::::::) 18:12:47 Well, not entirely ;) 18:12:50 lol 18:12:53 as you said 18:13:02 prolog dies when it sees a + 5 =1 18:13:03 well, prolog, but with a very different idea. 18:13:07 or whatever 18:13:09 precisely 18:13:17 I see real purpose for this creation of yours 18:13:20 * Sgeo keeps working on psox.types 18:13:22 beyond esotericality 18:13:29 ( :) ) 18:13:47 imagine that 18:14:06 a language which could solve functions, or pmatch, as the case may be 18:14:15 and then, naturally calculate inverses 18:14:24 that would be soo powerful 18:14:31 hmmmm, actually, it would lessen it's prologity, if you could help the language with the inverse, like specify that A+B=C --> A=C-B, B=C-A 18:14:42 yeah 18:14:48 call them, helper functions 18:14:49 :) 18:14:52 aha 18:14:56 then we get towards AI 18:14:56 yeah! 18:15:07 every function = helper annotations + pattern match 18:15:14 (wonders if the labgauge could solve for : itself) 18:15:18 wooho 18:15:21 I like that 18:15:35 very cool 18:15:40 *language 18:15:56 i'll start right after i've looked at the other channels, i was highlighted at about the time i wrote the initial idea on the chan ;) 18:16:09 lol, sure, go for 18:16:09 which was like an hour ago xD 18:16:10 it 18:16:12 lol 18:16:22 please please please, keep me updated on this one 18:16:48 (Oh, and this will also provide the freedom of sytax choice, removing all the funcky prolog) 18:16:52 *funky 18:16:56 *syntax 18:18:06 indeed. 18:18:09 oh, fuck. 18:18:09 *** A language is born **** 18:18:12 > 18:18:15 *? 18:18:16 a problem. 18:18:19 so : ? 18:18:22 ? 18:18:37 a chick told me to go fuck her, bluntly put :-) 18:18:44 damn 18:18:56 you missed it :P 18:18:58 ... 18:19:15 i'd actually prefer doing the language, to be honest, but i'm too polite to say no 18:19:16 run run 18:19:22 oh, lol, ok 18:19:25 and that was not a joke :\ 18:19:28 asdf 18:19:30 fdsafdsadf 18:19:32 aksdjl 18:19:37 ditto 18:19:43 so 18:19:44 say yes 18:19:49 and just take some paper with 18:19:51 ;) 18:20:01 okay, see ya, i'll keep ya updated -> 18:20:02 hehe 18:20:07 lol, cool 18:20:09 :) 18:20:16 cheers 18:20:18 oklopol, waiait, on IRC? 18:20:24 Sgeo: ? 18:20:26 lol 18:20:28 classic 18:28:56 Well, just grabbed Menuet OS 0.74b so gonna look around, be back late 18:28:57 cheers 18:29:03 -!- Hiato has left (?). 18:30:42 Sgeo: she asked that on irc, yes; the sex will prolly be the offline-type, though. 18:31:25 also, cya, 'll keep ya up to date on the lang -> 18:32:18 * pikhq laughs his ass off 18:34:11 -!- lby has joined. 18:34:25 -!- lby has quit (Client Quit). 18:39:52 "This is a python program that can convert bianry number( binary is a language that computers use to comunicate with other) to a normal digital number and the other way around." 18:39:55 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/496778 18:40:01 Excuse me while I hurt someone 18:45:40 Hey Sgeo, 010010101000101010111 19:04:24 -!- ehird` has quit (Success). 19:28:21 -!- faxathisia has quit ("Leaving"). 19:29:06 Sgeo, that program is just awful. 19:34:59 -!- Hiato has joined. 19:35:07 Back 19:35:09 :) 19:39:36 wb Hiato 19:43:02 any notable progress Sgeo? 19:43:11 Working on types.py 19:43:17 cool 19:43:28 would you say Python is a good language to learn? 19:43:34 better than Perl or C, for example 19:43:38 or Ruby 19:48:03 Yes 19:48:08 Though I might be biased 19:48:33 Well, that's impossible as I asked for your opinion ;) 19:50:14 Any funky esolangs that you specifically enjoy? 19:50:26 Just trying to get some ideas, I want to design another lang 19:50:47 because the unnamed one is way to hard to programme in 19:50:55 and Full 0 is way to easy :) 19:54:49 *too 19:55:06 a man of few words :P 19:55:08 -!- calamari has joined. 20:07:05 -!- oerjan has joined. 20:13:31 -!- RedDak has joined. 20:37:33 Hi calamari and oerjan and RedDak 20:37:44 hi Sgeo 20:37:47 hi 20:38:06 and Happy New Year to anyone i haven't said it to yet 20:58:34 -!- RedDak has quit (Read error: 104 (Connection reset by peer)). 21:18:16 -!- RedDak has joined. 21:18:44 FNUMs are giving me a headache 21:19:19 and so will LNUMs 21:19:21 ARGH 21:28:50 Here we are: 21:28:50 "Hello, World!" in my (as of yet) unnamed esolang: 21:28:50 {{>>~~~~{-<}~~~~~~~~~{-<-<}<<}:{>>{~~~~~~~~ 21:28:50 {<}~{>}}<<}\~>{{~{v}}>>>v{~}^<<<}/(<<<){[<<]}:>:{>>{~~~~~ 21:28:50 ~~~{<<}~{>>}}<<}\~{>>{vvvvvvvv~~~~~~~~~~~~~~~}<<}~{>>{vvv 21:28:50 v~~~~~~~~~~~~~}<<}~{>>{^^^^^^^^^^~}<<}~{>>{v~~~~~~~{{<<}~} 21:28:52 v{~}vvvvvvv{~{>>}}^^^^^^~~~{{<<}~}vvvv{~{>>}}v~~~}<<}~<{{^ 21:28:54 ^^}}~{>>{vvvvvv~{{<<}~{>>}}^^^^^^^~~~~~~~~~~~{{<<}~{v>}}^^ 21:28:56 ^^^^}}/{{()}}{[<<<<]}:>:{{~v}}\} 21:34:12 -!- RedDak has quit ("I'm quitting... Bye all"). 21:35:02 -!- RedDak has joined. 21:48:40 re RedDak 21:50:35 alrighty, well cheers all 21:50:58 -!- Hiato has left (?). 22:05:16 pikhq, Overand oklopol anyone else who cares, is it ok if PSOX.py is 2.5? 22:05:25 relies on Python 2.5 I mean? 22:06:12 I think I have Python 2.4 ATM. . . 22:09:48 -!- Dagide has joined. 22:12:51 Actually, n/m maybe 22:14:50 -!- RedDak has quit (Read error: 113 (No route to host)). 22:35:33 -!- Sgeo has quit (Connection timed out). 22:36:14 -!- Sgeo has joined. 22:36:38 Would anyone miss the extended function names "feature"? 22:42:33 Anyone? 22:48:04 -!- GreaseMonkey has joined. 22:48:40 Hi GreaseMonkey 22:48:52 oh hai 22:49:36 {{print($1);}("Hello ".concat($1,"!"));}("Sgeo"); 22:50:08 -!- Dagide has quit (Remote closed the connection). 22:57:00 "Removing extended functions to make my life easier.. yes, I'm being mean …" 22:58:32 Also, all the implementations of the domains are going to go right in the same directory with everything else 23:02:40 pikhq, you awake? 23:02:43 Anyone else awake? 23:03:07 NO. 23:04:50 ?? 23:05:01 No, I'm not awake. ;) 23:22:55 http://trac2.assembla.com/psox/browser/trunk/impl/psox/domain.py