00:09:27 -!- sebbu has quit (Client Quit). 00:29:01 -!- voodooattack has joined. 00:30:33 -!- nazgjunk has quit ("Bi-la Kaifa"). 00:38:47 -!- ShadowHntr has quit ("End of line."). 01:23:09 -!- wooby has joined. 01:24:10 heh. 01:24:35 there must be a bug 01:25:08 http://pastebin.ca/366996 01:25:16 :q or :Q is the command to quit 01:26:32 -!- wooby has quit (Client Quit). 01:26:38 -!- wooby has joined. 01:29:38 weird 01:49:31 -!- Sgeo has joined. 02:23:18 this is pretty sweet. 02:25:42 what is? 02:25:49 Warning: this comic occasionally contains strong language (which may be unsuitable for children), unusual humor (which may be unsuitable for adults), and advanced mathematics (which may be unsuitable for liberal-arts majors). 02:26:45 It's like... a huge concurrent PATH-like language with coroutines and support for files and sockets. 02:29:03 Originally it was so concurrent that each individual pointer could hold only one byte... but that makes it impossible to do filenames, urls, and socket addresses. 02:29:37 so.. I just made little counters and big counters... 02:32:30 It's weird because this could actually be useful. 02:33:02 very useful actually... I wouldn't mind using it. :) 02:36:39 hell, I'll throw in unicode support too... 03:07:40 -!- wooby has quit. 03:07:43 -!- pgimeno has quit (Read error: 104 (Connection reset by peer)). 03:11:20 -!- pgimeno has joined. 03:29:29 -!- jix__ has quit (Read error: 110 (Connection timed out)). 03:30:00 -!- jix__ has joined. 03:53:55 -!- digital_me has joined. 04:10:30 hmmm... 04:11:21 It's funny to note that unihan probably takes up less storage space than latin text. 04:11:58 It takes more bytes to encode a character... but you have less characters as a whole. 04:24:35 -!- oklopol has quit (Read error: 110 (Connection timed out)). 04:38:06 -!- oklopol has joined. 04:41:44 -!- digital_me has quit ("Lost terminal"). 05:01:36 ooooh. 05:01:38 this gives me ideas. 05:01:48 * SevenInchBread shhhhhhh 05:06:19 so. 05:06:25 I want to turn this into a programming language. 05:07:29 http://en.wikipedia.org/wiki/I_Ching 05:34:33 -!- oerjan has joined. 05:44:28 oerjan: StringIO is a file-like object 05:44:58 yeah, i eventually looked it up. 05:45:22 http://www.euph0r1a.net/mesostomatic/ 05:45:25 simply grand 05:46:01 off to bed I go 05:52:44 on second thought I saw a Stream module in Haskell that was quite similar to StringIO. 05:52:58 damn.. i want one of these http://www.superssd.com/products/tera-ramsan/ :/ 05:54:40 i think it used a type class for which strings and file handles were particular instances. 05:56:12 i guess that one wants to be accompanied by Intel's terachip :) 05:56:30 for full tera-coverage 05:57:56 :p 06:13:02 -!- puzzlet has joined. 06:13:02 -!- puzzlet_ has quit (Read error: 131 (Connection reset by peer)). 06:16:24 -!- goban has quit (Read error: 104 (Connection reset by peer)). 06:16:54 -!- goban has joined. 06:23:16 -!- oklofok has joined. 06:24:45 -!- oklopol has quit (Read error: 104 (Connection reset by peer)). 07:32:19 I like TK 07:32:36 nifty GUI thingy. 07:34:47 That's almost /ignore-worthy. 07:39:40 -!- sebbu has joined. 07:44:17 well... more specifically... I like Tkinter. 07:44:38 which is just like... Python stuff that turns around and does Tk/Tcl stuff 07:53:22 -!- ShadowHntr has joined. 07:53:35 Is it impolite to write an implementation of someone's language right after they have presented it? 07:54:09 Not to me... 07:54:11 Heww no. 07:54:22 I'd love it if someone implemented all the languages I came up with it. 07:54:48 because i got this idea for how to implement V and started writing. 07:55:32 * SevenInchBread has a nifty PATH-ish concurent language. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:17:48 -!- sebbu2 has joined. 08:37:01 -!- sebbu has quit (Read error: 110 (Connection timed out)). 09:06:47 -!- ShadowHntr has quit ("End of line."). 09:33:14 -!- oerjan has quit ("leaving"). 09:40:34 -!- SevenInchBread_ has joined. 09:42:34 -!- SevenInchBread has quit (Read error: 145 (Connection timed out)). 09:42:46 -!- SevenInchBread_ has changed nick to SevenInchBread. 09:44:49 -!- anonfunc has joined. 09:46:50 -!- nazgjunk has joined. 10:07:46 -!- anonfunc has quit. 10:11:22 -!- pjd has joined. 10:28:48 -!- oklofok has changed nick to oklopol. 11:09:21 -!- oerjan has joined. 11:11:17 -!- nazgjunk has quit ("Bi-la Kaifa"). 11:16:14 -!- oerjan has quit ("leaving"). 11:18:28 -!- Sgeo has quit (Remote closed the connection). 11:21:47 -!- voodooattack has quit. 13:05:25 -!- sebbu2 has changed nick to sebbu. 14:19:05 -!- sebbu has quit ("reboot"). 14:37:06 -!- sebbu has joined. 14:38:47 hi 14:38:49 sup? 15:33:06 -!- ais523 has joined. 15:41:44 -!- ais523 has quit (Remote closed the connection). 15:42:11 -!- ais523 has joined. 15:44:02 !bf http://bf-hacks.org/hacks/underload.b 15:44:06 ÿ 15:44:12 !ps 15:44:16 1 ais523: ps 15:44:20 !ps off 15:44:22 :- 15:44:24 1 SimonRC: ps 15:44:24 :-P 15:44:33 ;p 15:44:45 I must have got the wrong URL, so it interpreted it as -. 15:44:55 what is V? 15:45:10 !bf http://www.bf-hacks.org/hacks/uload.b 15:45:29 -!- ais523 has quit (Excess Flood). 15:45:34 -!- ais523 has joined. 15:45:53 err... what just happened? 15:46:03 !ps 15:46:06 1 ais523: bf 15:46:07 it killed you 15:46:08 2 ais523: ps 15:46:30 Maybe I should try a program slightly shorter than a kilobyte 15:46:33 or a pastebin 15:47:41 !i 1 http://pastebin.ca/raw/367737 15:47:44 !eof 15:47:54 !ps 15:47:58 1 ais523: bf 15:48:00 2 ais523: ps 15:48:18 I suppose it might take a while to interpet what I've given it 15:48:36 !kill 1 15:48:38 Process 1 killed. 15:49:07 or maybe it was in an infinite loop due to trying to interpret the URL as a program 15:50:23 !daemon ul bf http://pastebin.ca/raw/365170 15:50:35 !ul http://pastebin.ca/raw/367737 15:51:21 !ps 15:51:24 1 ais523: ps 15:51:32 !ps d 15:51:34 1 ais523: ps 15:51:52 !daemon ul bf http://pastebin.ca/raw/365170 15:51:57 !ul (Hello, world!)S 15:52:00 Hello, world! 15:53:52 !daemon ul bf http://pastebin.ca/raw/365170 15:54:03 !ul (/me is trying to send a message starting "/me")S 15:54:06 /me is trying to send a message starting "/me" 15:54:17 doesn't work with EgoBot, it seems 15:55:33 !daemon ul bf http://pastebin.ca/raw/365170 15:56:16 !ul (~exec sys.stdout("!daemon ul bf http://pastebin.ca/raw/365170"))S 15:56:18 ~exec sys.stdout("!daemon ul bf http://pastebin.ca/raw/365170") 15:56:19 !daemon ul bf http://pastebin.ca/raw/365170 15:57:04 !ps 15:57:06 2 SimonRC: ps 15:57:11 !ps d 15:57:14 1 bsmnt_bot: daemon ul bf 15:57:16 2 ais523: ps 15:58:08 I think you need to read about ACTION in the IRC RFC. 15:58:16 that is how /me wors 15:58:18 *works 15:59:16 -!- oerjan has joined. 16:00:13 !ul (a(:^)*S):^ 16:00:16 (a(:^)*S):^ 16:00:25 !ps d 16:00:28 1 oerjan: ps 16:00:33 !help 16:00:36 help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon 16:00:38 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl 16:00:47 !ps 16:00:50 1 oerjan: ps 16:01:18 !daemon ul bf http://pastebin.ca/raw/365170 16:01:28 !ul (~exec sys.stdout("!daemon ul bf http://pastebin.ca/raw/365170"))S 16:01:30 ~exec sys.stdout("!daemon ul bf http://pastebin.ca/raw/365170") 16:01:31 !daemon ul bf http://pastebin.ca/raw/365170 16:01:32 Still takes just one line before dying? 16:01:38 Unfortunately, yes 16:01:49 I haven't got to modifying Keymaker's program any further 16:02:18 I'd have to run it in a debugger to find out what happens to its memory after an Underload program ends 16:02:29 * ais523 searches for an online Brainfuck debugger 16:02:44 * oerjan has one in his favorites list 16:03:07 http://mozaika.com.au/oleg/bfdebug.html 16:04:59 * ais523 found that one before they saw Oerjan's message 16:05:54 * oerjan almost deduces that ais523 is a woman 16:06:30 * ais523 is just too used to using gender-neutral pronouns online 16:06:41 and I also have a gender-neutral name in RL, as it happens 16:07:50 ais523: you appear to be in birmingham uni 16:09:00 yes, I haven't hidden my IP 16:09:24 I haven't even bothered hiding my name 16:09:34 * SimonRC needs a pseudonym 16:10:20 /nick Jeremy_Askew 16:10:24 :-) 16:10:28 whoever he might be 16:15:06 -!- jix__ has changed nick to jix. 16:19:41 !daemon ul bf http://pastebin.ca/raw/367770 16:19:47 !ul (Hello, world!)S 16:20:06 !ps 16:20:08 3 ais523: ps 16:21:09 !ps d 16:21:12 1 bsmnt_bot: daemon ul bf 16:21:14 2 ais523: daemon ul bf 16:21:16 3 ais523: ps 16:21:19 !kill 1 16:21:21 !kill 2 16:21:22 Process 1 killed. 16:21:24 Hello, world! 16:21:26 Process 2 killed. 16:21:27 -!- pjd has quit. 16:21:35 !daemon ul bf http://pastebin.ca/raw/367770 16:21:40 !ul (Hello, world!)S 16:22:04 !kill 1 16:22:06 Process 1 killed. 16:22:08 Hello, world! 16:22:18 The problem is that there isn't a final newline on the output 16:23:19 !daemon ul bf http://pastebin.ca/raw/367774 16:23:24 !ul (Hello, world!)S 16:23:26 Hello, world! 16:23:33 !ul (Hello again!)S 16:23:36 -!- goban has quit (Read error: 104 (Connection reset by peer)). 16:23:36 Hello again! 16:23:52 -!- goban has joined. 16:24:04 This ought to work as long as nothing is left on the stack at the end of the program 16:27:42 !ul (a("!ul )~*(:^")*a(~exec sys.stdout)~*):^ 16:28:00 !undaemon ul 16:28:02 Process 1 killed. 16:28:12 !daemon ul bf http://pastebin.ca/raw/367774 16:28:23 !ul (a("!ul )~*(:^")*a(~exec sys.stdout)~*S):^ 16:28:31 !ul (a("!ul )~*(:^")*a(~exec sys.stdout)~*S):^ 16:28:34 ~exec sys.stdout("!ul (a("!ul )~*(:^")*a(~exec sys.stdout)~*S):^") 16:29:08 Python seems not to understand nested quotes, so this quine's going to take a bit of work 16:29:29 but it's hard to see how any language could understand nested " as quotes 16:29:38 that's why I like directed quotes 16:37:11 ais523, how about triple-quoted string? ("""xxx""") 16:37:33 the problem is whatever delimiters are used outside the string will end up inside it 16:37:43 due to the nature of this sort of quine 16:38:00 ais523 you making your first quine? 16:38:09 directed quotes? 16:38:19 but the delimiter is three characters, so you can divide it and safely print it... maybe? 16:38:35 * ais523 has made quines before 16:38:42 And as for directed quotes: 16:39:02 !ul (((*)))^^aaS 16:39:04 ((*)) 16:39:17 !ul (((*)))^^aaaS 16:39:18 (((*))) 16:39:25 I.e. another word for parentheses :) 16:39:39 Parentheses are used as directed quotes in Underload 16:39:45 but Capuirequiem uses [] 16:39:58 and STATA (a nasty non-esoteric language) uses `" "' 16:40:02 I realized (and I think INTERCAL may use it) that alternating " and ' also allows for arbitrary deep nesting 16:40:22 INTERCAL can do it even without alternating in most cases 16:40:32 alternating is only necessary in tricky bits of array markup 16:41:05 strangely enough, the C-INTERCAL compiler had a bug in this regard through most of its history (it was the main bug I fixed for the most recent version) 16:42:14 ..translates c to intercal? 16:42:21 translates INTERCAL to C 16:42:40 okay, i was very close to calling you a lier :) 16:42:42 or to be precise, it translates a dialect of INTERCAL commonly also called C-INTERCAL to C 16:44:44 http://esolangs.org/wiki/C-INTERCAL 16:45:36 hm... I did not quite remember the weirdness. 16:49:24 -!- goban has quit (Connection timed out). 16:49:38 DO .1 <- ,3SUB",2SUB.1".2~.3"".4 16:50:05 the entire statement could be parsed a different way up to the third double-quote 16:50:27 which is no good for a parser which must decide whether the second ears are closing when it reaches them, not later 16:50:56 there's actually a sentence in the manual specifically banning examples like this one, which leads me to believe they must have hit the same problem implementing INTERCAL-72 16:58:28 !ul (()(*))()(~:^:S*a~^a~!~*~(/)S):::::*****^!! 16:58:31 */*/**/***/*****/********/ 16:58:56 !ul (()(*))()(~:^:S*a~^a~!~*~(/)S)::::::::********^!! 16:58:59 */*/**/***/*****/********/*************/*********************/**********************************/ 16:59:05 !ul (Hello, world!)a 16:59:11 print? 16:59:16 !ul (Hello, world!)A 16:59:19 !ul (Hello, world!)S 16:59:23 Hello, world! 16:59:26 :DDDDDDDDDDDDDDDDDDDD 16:59:27 yay 16:59:32 !ul (Hello, world!)aaaaaaaaaaaaaaaaS 16:59:35 ((((((((((((((((Hello, world!)))))))))))))))) 16:59:42 whoopes 16:59:55 !ul (a)::S 16:59:57 a 17:00:00 !ul (a)::SSS 17:00:03 aaa 17:00:05 !ul (a)::SSSS 17:00:07 aaa 17:00:21 !ul (a)~S 17:00:26 Erm, I have no idea what state the interpret will be in now that you've used up more stack elements than it had 17:00:31 !ul (4)(a)~S 17:00:32 !ul (Hello, world!)S 17:00:33 4 17:00:35 Hello, world! 17:01:01 * interpreter 17:01:09 oh :P 17:01:12 !ul (a)(b)*S 17:01:15 ab 17:01:21 !ul (a)(b)~*S 17:01:25 ba 17:01:31 !ul (a):*S 17:01:32 !ul(a):*S 17:01:33 aa 17:01:35 Huh? 17:01:44 Snap! 17:01:48 i seem to remember the language pretty well 17:01:49 yay 17:01:55 !ul (a)aS 17:01:57 (a) 17:02:08 !ul (a)a*S 17:02:09 !ul (a)(a)^S 17:02:11 (a) 17:02:13 (a) 17:02:28 !ul (a)(a)a*S 17:02:31 a(a) 17:02:45 !ul (a)(a)(a)^*S 17:02:47 a(a) 17:03:59 !ul ((a)(b))^*S 17:04:03 ab 17:04:04 !ul (a)a*S <<< shouldn't this output aa or smth? 17:04:07 (a) 17:04:40 Your program: (a)a*S pushes a onto the stack, encloses it in brackets, concatenates it to a nonexistent stack element, and prints it 17:04:54 !ul (a)(a)a*S 17:04:57 a(a) 17:04:58 a == enclose, yeah, i failed 17:05:02 i though double 17:05:04 that's : 17:05:06 indeed 17:05:21 : = two dots = double 17:05:34 i figured that's the reason 17:05:38 you are the author? 17:05:52 Yes. Underload is a subset of a much larger language that I haven't released yet 17:05:59 !ul 1S 17:06:03 because I haven't figured out the details 17:06:06 1 is comment? 17:06:13 '1' doesn't mean anything, so it's an error 17:06:21 all strings have to be quoted in brackets 17:06:23 okay, same thing :P 17:06:24 !ul (1)S 17:06:27 1 17:06:51 What's surprising me at the moment is how errorproof the interpreter's being at the moment 17:07:03 considering that it's written in Brainfuck and does no error checking 17:07:11 :o 17:07:13 wtf 17:07:25 It's Keymaker you'll have to thank for that, not me 17:07:34 I just modified it for EgoBot use 17:07:40 -!- helios24 has quit ("Leaving"). 17:07:54 http://pastebin.ca/raw/367774 17:08:11 based on the original http://www.bf-hacks.org/hacks/uload.b 17:08:54 hmm... why haven't i thought of []-comments 17:09:15 !ul (This is a comment)!(Hello, world!)S 17:09:19 Hello, world! 17:09:29 You can create a comment by enclosing it in brackets and then throwing it away with ! 17:09:45 Oh, I see you were referring to BF's [] comments 17:09:48 yeah 17:10:06 * ais523 didn't think of them in an earlier revision, either, and added them for the latest version 17:10:27 i've always stripped my comment off bf commands 17:10:30 *s 17:11:46 pretty omg our programming tasks, today i had to write a method for iteratively calculating list length on the whiteboard 17:11:55 in java 17:13:45 * ais523 is also learning Java 17:13:58 I have to write an interactive game of Snakes-and-Ladders over a network 17:14:17 which is a bit confusing, as the players have no input into snakes-and-ladders anyway 17:17:02 heh 17:17:36 i'm starting to learn towards functional languages nowadays 17:17:42 * oklopol is becoming lazy 17:18:03 :-P 17:19:12 two years ago i would've laughed at python for the code being 10 times shorter in most tasks... since it's not REAL PROGRAMMING like c 17:19:46 I tend to lean towards pure languages 17:19:47 c/c++ still makes me tick though... java not so much 17:20:06 whether it's pure functional like Unlambda or pure procedural like C 17:20:32 I also like C and C++ 17:20:36 Java has a lot of annoying quirks 17:20:39 or purely imperative like brainfuck! 17:20:41 what about pure multiparadigm like Oz? :) 17:20:45 such as having to use a file-system for quoting 17:21:06 (not that i really know Oz) 17:21:14 * ais523 was going to use brainfuck as an example, but couldn't think of what paradigm it was a pure representative of 17:21:53 By the way, Underload is a pretty pure concatenative language 17:26:51 ais523 was wondering whether EgoBot responded to private messages 17:26:59 apparently it does 17:29:26 ais523: BF is close to a Turing machine. 17:30:01 with lots of states but a limit on which states can go where, and what each state can do 17:30:06 and with only a semi-infinite tape 17:30:17 and lots of possible symbols for each tape cell 17:30:47 semi-infinite tape? 17:31:11 !bf < 17:31:23 that's an illegal program in most BF implementations 17:31:34 but Turing machine tapes are infinite both ways 17:31:42 that is not semi-infinite. 17:31:42 not always 17:32:18 INF - 0 = INF, INF - (-INF) = 2INF = INF 17:32:24 semi- is wrong 17:32:36 it's just different, not semi-infinite 17:32:50 Would you object to the term 'half-line' for a ray in geometry, which is quite common 17:33:06 I suppose 'semi-infinite' means 'infinite half of two ways', or one way 17:33:07 half-linishly infinite 17:33:16 well, maybe :D 17:33:22 i hope it's not an official term 17:34:59 * oerjan thinks his data structure for implementing V's sum tree was moderately clever. :) 17:36:12 * ais523 looks up what Oerjan's data structure was 17:37:43 You have a structure consisting of a binary tree and a linked list of binary trees? 17:38:51 well, i guess you could call it that. It's just a zipped binary tree. 17:39:16 of infinite height both ways. 17:39:54 For Underload's superset language, Overload, I'm using a data structure which is effectively a doubly-linked binary tree 17:40:09 analogous to a doubly-linked list 17:40:29 ITYM "binary tree with upward links". 17:40:50 Yes, except that I have to do some compression 17:40:57 because the trees are also infinite 17:41:09 compression usually helps with infinite stuff. 17:41:53 It's the only language I've ever come across where I had to optimize 99 bottles of beer 17:41:59 to prevent the computer running out of memory 17:42:05 :D 17:43:09 If one is dealing with substitutions of values for variables, sometimes you get an infinite data structure, which is easily compressed as a function for the general case plus ome counterexamples. 17:43:49 All data types were equivalent 17:43:52 like ([('x', "f(z)"), ('z', "g(x)")], id). 17:44:10 ais523: corection: all data types of the same cardinality are equivalent. 17:44:13 so the character '!' was equivalent to the number 34 (because it used incremented ASCII as a character set) 17:44:31 and any data type of greater cardinality can emulate any one of lower cardinality. 17:44:34 extended ascii? 17:44:38 within the HM type system 17:44:42 no, incremented 17:44:49 newline was 11 and space was 33 17:44:49 okay 17:44:54 so that EOF could be 0 17:45:04 yeah, oaky 17:45:04 ouch 17:45:08 heheh 17:45:16 (like an oak?) 17:46:14 oaky could be the name of a tree-based lang 17:46:18 It gets worse; the number 4, for instance, was the string :::***, which is the fourth Church numeral if interpreted as an Underload or Overload program: 17:46:19 heh 17:46:20 hohoo 17:46:24 i have an idea 17:46:38 !ul ((*)S):::***^ 17:46:41 **** 17:46:59 how does this tree-based language work, then? 17:47:05 it 17:47:09 hmm 17:47:12 actually 17:47:19 i have overlapping ideas 17:47:38 i should really make a lang for every idea i get, since they kinda stack up 17:48:05 Overload was invented as a language for writing esolang interpreters in 17:48:19 You can compile both Unlambda and Befunge into it, I think 17:48:30 and because I haven't finished the specification yet, I can just change it until you can 17:48:44 how convenient :D 17:49:03 ah, a lang with self-modification and support for most esolang features 17:49:22 that's easy 17:49:31 The shortest possible quine, apart from the null quine, works by reading the program source and printing it out 17:49:39 It's only three characters long 17:49:47 10 LIST 17:49:54 Q 17:50:07 that's a cheating quine 17:50:11 Q is not 17:50:13 i think 17:50:23 oh it is yeah 17:50:25 indeed 17:50:44 Shortest possible in the language 17:50:45 i thought Q was defined to not cheat :) 17:51:16 just like X is defined to make the language Turing-complete 17:51:19 without saying how? 17:51:22 that would be rather hard to achieve. 17:51:43 It wouldn't be the first time that an esolang was impossible to implement 17:51:45 heh, who came up with the X 17:51:51 oerjan? 17:52:00 i implemented it at least. 17:52:00 IIRC Homespring had a clause to make it uninterpretable 17:52:11 " . " was defined to cause a temporal paradox 17:52:23 oklopol: sup? 17:52:34 nooga: all ot it 17:52:39 *of 17:52:41 oerjan: implemented X? 17:52:47 you have? :) 17:53:02 I think his interpreter added a random number to each character of the program 17:53:05 and then ran it as Perl 17:53:15 xD 17:53:20 yep that's mine. 17:53:23 oh wow, somebody wrote a Fugue compiler 17:53:51 It seems to run on my Hello, World program, but I can't run the output on the computer I'm on 17:54:08 It certainly compiled it into English well enough 17:54:15 and i'm trying to design MACRO SADOL and then write a raytracer in it 17:54:18 So I suppose it could be a Fugue to IRP compiler if needed 17:54:24 ais523: you wrote it? 17:54:44 I didn't write the compiler, just the only Fugue programs I've ever come across 17:55:21 oh wow, that's a nice hello world 17:55:28 The Fugue compiler writer goes by the username of Mrosenau on the wiki 17:55:41 does it compile to Prelude? 17:56:22 Strangely, no. (That's impossible to do exactly, because Fugue can push numbers greater than 9, but obviously there's a fix around that.) 17:56:32 oh, true 17:56:58 But there isn't a Fugue-to-Prelude compiler in there at all, just to Fugue-to-COFF and Fugue-to-pseudo-English 17:57:16 heh 17:57:52 strange, i remember putting example Prelude programs somewhere and now can't find them 17:58:24 g 17:58:26 eh 17:59:16 I wrote a BF-to-Prelude compiler: http://esolangs.org/files/prelude/util/bf2pre.c 17:59:29 It was the first step in creating the Hello, World! program 18:01:15 i remember there was a fairly pretty fibonacci Prelude program using three voices... 18:02:26 i wonder how it sounds 18:02:57 cause two voices is borign :) 18:03:41 what's the term for haskell 'f . g' or 'o' in math 18:03:41 ? 18:03:51 composition 18:03:57 thanks 18:04:20 is there a name for the actual sign? (composition fits though) 18:04:31 or is it the composition sign or smth 18:04:46 it's 'ball' in finnish :PP 18:04:53 http://en.wikipedia.org/wiki/Function_composition 18:04:56 says it's "circle" 18:05:07 oki 18:05:13 http://en.wikipedia.org/wiki/Composition_operator 18:05:33 'operator "o"' 18:05:39 what a great name 18:06:09 It's * in Underload 18:06:29 because composing functions is the same as multiplying numbers: 18:06:53 !ul (::**)(::**)*((+)S)~*^ 18:06:55 + 18:07:04 Fugue needs a composition operator :) 18:07:07 um... 18:07:27 it would...compose 18:07:28 !ul (::**)(::**)*((+)S)~^^ 18:07:32 +++++++++ 18:08:26 ::** is 3, so multiplying two of them gives 9 +'s 18:09:26 Composition in Fugue would be like the CREATE operator in CLC-INTERCAL, though 18:09:49 it would generate new syntax, but the syntax for using it itself would therefore have to be too complicated to be useful 18:11:20 By the way, the burning questions in Prelude design must be answered: exactly which way does - subtract? 18:11:41 -!- nazgjunk has joined. 18:12:13 (So far it's mostly been assumed, at least by me and the defaults in the compiler, that it subtracts the top element from the second.) 18:13:13 eh, whatever the interpreter does 18:13:26 probably the top from the second since that would make sense 18:14:06 U 18:15:49 elif i == '-': 18:15:49 18:15:49 b = stacks[voice].pop() 18:15:49 a = stacks[voice].pop() 18:15:50 stacks[voice].push(a-b) 18:16:51 nooga: a predecessor to V? 18:17:12 okay, i will update the specification and the wiki article 18:17:19 :-P 18:17:24 wtf is V? 18:17:38 http://esolangs.org/wiki/V 18:17:47 lament: Was that you redirecting your name to your user page on the wiki? 18:18:17 yes 18:18:36 having two pages is bizarre 18:21:25 -!- crathman has joined. 18:24:00 well, redirecting to user pages is against policy, graue is pretty strongly against it. 18:24:29 See Esolang_talk:Authors 18:24:29 oh, jeez 18:26:04 http://esoteric.voxelperfect.net/wiki/Nikita_Ayzikovsky 18:26:44 What do you think of the way I've fixed it? 18:27:20 i think graue's on crack 18:27:29 A small amount of information on the wiki page, and a link to the userpage 18:27:35 and i think having _two_ pages about me is a little extreme 18:27:39 Compare http://esolangs.org/wiki/Catatonic_Porpoise 18:27:46 and http://esolangs.org/wiki/User:Graue 18:27:59 yes 18:28:07 two pages, containing the same information 18:28:20 but probably written by different people 18:28:34 okay, i'll redirect User:Lament TO nikita aizikovsky then :) 18:28:58 I think the point is that we can have a page http://esolangs.org/wiki/Donald_R._Woods 18:29:04 even though he doesn't contribute 18:29:30 eh 18:30:02 -!- oklopol has quit (Read error: 104 (Connection reset by peer)). 18:30:03 we still can do that regardless of the policy on userpages 18:30:03 http://esolangs/org/wiki/Esolang:Authors explains what some people believe the current policy to be 18:30:34 -!- oklopol has joined. 18:30:45 (I think I agree with lament on this one, but I'm not able to decide Esolang policy by myself) 18:31:55 * lament tries to think of a nice way out of this 18:33:21 I suppose the major difference is that user pages are treated as personal 18:33:36 whereas pages in the article namespace are treated to the rigors of the wiki process 18:34:08 which is why Graue doesn't want people linking to user pages in an unmarked manner and coming across a non-Neutral Point Of View page 18:34:10 i understand the reasoning 18:34:24 it works for wikipedia 18:34:50 in practice, you end up with two almost identical pages 18:35:22 It could end up with different pages in theory, but what esolang enthusiasts are most likely to put on Esolang is a list of languages they've created 18:35:47 and what people are most likely to write about for a person is a list of languages they've created 18:35:48 i guess somebody like Pressey has enough info about them that it makes sense to actually have a page 18:36:01 but somebody like me dosen't 18:36:32 -!- UpTheDownstair has joined. 18:36:48 -!- nazgjunk has quit (Read error: 104 (Connection reset by peer)). 18:37:16 We could always make up some lies about you being a convicted serial killer :) 18:38:07 but we don't have a {{citation needed}} tag to put on them, so they'd have to be deleted 18:40:46 oerjan: what do you mean lies 18:41:07 heh @ http://www.esolangs.org/wiki/Category:Unusable_for_programming 18:41:10 "Nikita Ayzikovsky": 71 google results, so it might be a bit hard to write an article 18:41:30 "ais523": 10100 google results, mostly sites pretending to be Wikipedia or Google Groups 18:41:50 (Strangely, Esolang is second nowadays, behind my Wikipedia user page; it never used to be like that!) 18:42:09 "lament": about 10300000 google results 18:42:13 mostly irrelevant, of course 18:42:16 all about me 18:43:37 wow, these google results leave a horrible impression :) 18:43:40 * SimonRC goes to dinner 18:44:42 Some more statistics: Did you know that http://esolangs.org is the 1684148th most viewed website on the Internet 18:44:53 impressive 18:45:06 and it's visited by 0.000025% of Internet users? 18:46:21 sounds about right 18:46:52 http://alexa.com/data/details/traffic_details?url=esolangs.org 18:50:24 void ab() {char c; putchar('a'); c=getchar(); if(c=='y') ab(); putchar('b');} 18:50:45 It's a program designed to be easy to implement in most languages, but very difficult to express in UML 18:51:07 how do you express programs in UML? 18:51:19 sorrt, I meant void ab() {char c; putchar('a'); c=getchar(); if(c=='y') ab(); putchar('b'); c=getchar(); if(c=='y') ab();} 18:51:21 i thought uml was for object relationships 18:51:34 It is, but you're meant to use it to model the entire system 18:51:52 i've never seen UML used to model program flow 18:52:16 It has diagrams that model the flow of a program, known as sequence diagranms, that look like they're strictly ordered but in fact only place an incomplete ordering on the program 18:52:38 and people keep trying to change the notation for loops because they don't like the official one 18:52:43 heh 18:53:09 They are written in terms of passing messages around, but you can't send a message to the user 18:53:32 You have to communicate to the user by returning from the message and then waiting for the user to send you another one 18:53:41 oh 18:53:49 -!- SevenInchBread has quit ("haaaaaaaaaa"). 18:53:53 so you'd effectively need to write an interpreter rather than a program to do what I've written above 18:53:58 so add a dummy user object 18:54:21 That doesn't help, because it can't communicate with the user either except by having a message sent to it 18:54:55 and sending messages while there's still methods running is impossible to draw, as far as I know 18:55:04 doesn't that approach fail just as badly with real-world programs as with your example? 18:55:23 As far as I can tell, yes, but there are normally ways to work around it 18:55:53 If you think in terms of a Microsoft-like GUI, where the user tells the system to do something, it does it, and then gives feedback, it actually makes some sort of sense 18:56:28 But it's very easy to get confused and draw an impossibilty with the diagram still seeming to make perfect sense 18:56:59 but even microsoft-like GUIs have state 18:57:26 You're allowed to store state in the objects (in fact, you have to), you just can't communicate with the user while there's anything on the call stack 18:57:48 So a hideously recursive function like mine where the stack is the most sensible place to store data is pretty much worst-case 18:58:24 but isn't "waiting for user input" an extremely common hting to do? 18:59:00 even in a GUI, it happens 18:59:09 sometimes 19:00:02 can you do continuation passing style? 19:00:23 can you model a GOTO? :) 19:00:24 lament: More often than it should, in my experience 19:00:44 oerjan: probably, but it would clutter the diagram awfully 19:01:17 lament: No, you can't. It's kind of tricky to even model an IF in a complicated diagram. 19:02:10 -!- ais523 has quit ("#esoteric made me miss my bus yesterday. It was worth it, though."). 19:02:18 o_O 19:02:44 #esoteric made me kill and eat my little brohter. It was worth it, though! 19:03:12 Yum 19:03:49 of course it was worth it, but what has #esoteric to do with it? 19:05:20 the subliminal messages you keep sending me 19:05:44 (Disclaimer: I have no little brothers.) 19:05:57 that brainwash me into becoming a cruel maniac fratricidal antropophage 19:05:57 Oh those 19:06:30 i have no little brothers, either! 19:06:39 none no more! 19:08:40 There is no such thing as a subliminal message. 19:08:53 The gnomes have made that abundantly clear to me. 19:12:26 And now we return to our regularly scheduled programming. 19:14:26 NOOOO!!! NOT THE REGULARLY SCHEDULED PROGRAMMING!! AAARGH 19:16:15 If you stop whining and behave properly you _may_ be allowed to choose your language. Otherwise, we will be winding up the C***L compiler shortly. 19:18:57 -!- goban has joined. 19:19:12 with a random number that is not turing complete 19:19:20 i mean the X thing 19:19:24 oerjan 19:20:21 you will have to make all the 256 programs at once and i'm sure perl isn't flexible enough to allow any of the 256 chars 19:20:35 did you read my wiki post a moment ago? 19:20:42 errrr no :P 19:39:16 -!- UpTheDownstair has changed nick to nazgjunk. 19:45:22 -!- crathman has quit ("Chatzilla 0.9.77 [Firefox 2.0.0.1/2006120418]"). 19:45:26 -!- oerjan has quit ("Good night"). 20:09:53 -!- pgimeno has quit (zelazny.freenode.net irc.freenode.net). 20:09:54 -!- Sukoshi has quit (zelazny.freenode.net irc.freenode.net). 20:09:54 -!- GregorR has quit (zelazny.freenode.net irc.freenode.net). 20:09:54 -!- EgoBot has quit (zelazny.freenode.net irc.freenode.net). 20:15:37 -!- pgimeno has joined. 20:15:37 -!- Sukoshi has joined. 20:15:37 -!- GregorR has joined. 20:15:37 -!- EgoBot has joined. 21:37:15 -!- Sgeo has joined. 21:41:45 -!- meatmanek has quit (Read error: 54 (Connection reset by peer)). 21:43:24 -!- meatmanek has joined. 21:47:55 -!- ShadowHntr has joined. 22:06:41 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht"). 22:31:24 -!- sebbu2 has joined. 22:33:04 foo 22:50:41 -!- sebbu has quit (Connection timed out). 23:10:17 -!- digital_me has joined. 23:13:21 -!- sebbu2 has quit (Client Quit). 23:14:17 -!- digital_me has quit (Client Quit). 23:14:37 -!- digital_me has joined. 23:51:22 -!- ShadowHntr has quit ("End of line.").