00:00:07 not at the moment 00:07:27 -!- ^v has quit (Quit: http://i.imgur.com/MHuW96t.gif). 00:07:53 kmc, Hm? "inspect & destructure types"? 00:08:08 destructure is not even a real word! 00:08:27 says you 00:08:51 Says the spell checker 00:09:09 the definition of Foo can ask, say, whether T is a pointer, and if so, do things with the pointed-to type 00:09:13 http://www.cplusplus.com/reference/type_traits/ 00:11:14 i've poked at compile-time type introspectiony stuff, but it's hard to conceptualize. what is a pointer tye, really 00:11:22 kmc: In mine, you could probably do things with pointed-to-type, using the typeof operator, for example (typeof(*(X)0)) or something like that. (You can also define your own pointer types, which I don't know if C++ can do) 00:11:34 how do "your own pointer types" work? 00:11:52 in C++ you define your own pointer types by making a struct/class which overloads operator* and such 00:12:06 these so-called "smart pointers" are very important to writing C++ in a high level, memory-safe style 00:12:20 Well, it works something like that. 00:12:29 So, yes it is a bit similar to the C++ way. 00:13:10 But, the functions to deal with them are called "deref" and "assign" (including the quotation marks), rather than operator* 00:15:02 Do you understand this now? 00:16:41 -!- oerjan has quit (Quit: Hnäjte). 00:17:19 zzo38, what about the difference between operator* and operator-> ? 00:17:50 In C++ the former returns a reference and the latter a pointer I believe 00:18:02 In theory you could return different values for them 00:18:07 Can't see that being useful though 00:18:09 Vorpal: In mine there isn't a difference. 00:18:36 zzo38, well I doubt you could fully emulate C++ in it then 00:18:40 If the return type of "deref" is a struct/union type, then you can use the -> operator with it. 00:18:46 All the so called "useful" features perhaps 00:19:02 What about pointers to member functions? 00:19:14 Has a ->* syntax or something like that 00:19:20 Vorpal: I don't intend to "fully emulate" C++; I only am saying that some useful features of C++ are possible to imitate, but not exactly the C++ way. 00:19:40 How to "pointers to member functions" work? 00:19:50 it's a little sad that Rust doesn't have anything with those particular capabilities of C++ templates, even though C++ templates themselves are a mess 00:20:35 zzo38, It is like a function pointer (points to a function of the given prototype that is also a member of this class) but you provide the actual this-pointer object when calling the function pointer 00:20:36 imo pass first-class environments to macro-functions 00:20:37 kmc: Can you do some things, with macros, though? 00:20:45 zzo38, I used it *once* 00:21:03 I never used pointer to member variables, which also exists in a similar manner 00:21:21 Vorpal: Black-C doesn't have a "this" pointer 00:21:46 zzo38, so no member functions? 00:21:56 If your compiler supports trampolines then you may be able to implement such member function pointers 00:22:00 Ah... 00:22:01 zzo38: yes, there are macros, and there is parametric polymorphism with type classes, but there's nothing which inspects types in this way 00:22:16 Vorpal: Structures and unions can have functions as long as they are static (or extern static). 00:22:38 Also stay away from MI. 00:22:45 Also virtual inheritance is a mess 00:22:56 I never figured out how it works completely 00:23:19 Btw, python's scoping is terrible 00:23:31 As far as I can tell it is late binding dynamic scoping? 00:23:32 My specification has no virtual functions or multiple inheritance or those things either, but you can try to fake it. 00:23:37 (Maybe.) 00:23:43 Kind of 00:24:01 hm? terrible? 00:24:09 Hm no it isn't dynamic scoping 00:24:14 Nor is it true static scoping 00:24:48 nucular, well yes... def foo(): return x and then declare x *later* in the module scope (as long as you don 00:24:56 don't* call it before declaring x) works 00:25:11 I'm personally not a fan of any sort of late binding 00:25:28 hm, i like it 00:25:30 python is a nice scripting language apart from that though 00:25:42 would much prefer static typing and early binding 00:26:06 also, i think module systems get much weirder in my projects 00:26:15 nucular, oh? 00:26:23 Than what? Python? 00:27:21 what? 00:28:16 "get much weirder" "than what" 00:28:20 module systems are a pretty interesting area of PL that I never really learned much about 00:28:43 Haskell and Rust are both pretty conservative re: modules, although Rust's module system is definitely more complicated than Haskell's 00:28:46 kmc, PL? 00:28:53 programming languages (as a field of study) 00:28:55 AH 00:28:59 Ah* 00:29:06 For example I have a main script that imports a module that imports the main script 00:29:33 kmc, I think the simple system of erlang works well. It is simple apart from the "reload on the fly and keep two versions in memory at once" bit 00:29:52 nucular, that sounds like bad design 00:30:09 The module uses a class that was defined in the main script, and the main script uses the instances created in the module 00:30:24 "Due to the large number of spambot signups from China, we no longer allow .ch email addresses" 00:30:44 I have had python scripts that loops through an array and import modules from that though (for a build system generator thingy, each imported module was the config for that project, defining how to generate that sub-dir) 00:30:56 -!- hogeyui_ has quit (Ping timeout: 252 seconds). 00:31:20 -!- hogeyui_ has joined. 00:37:31 -!- hogeyui_ has quit (Ping timeout: 246 seconds). 00:41:59 -!- hogeyui_ has joined. 00:44:45 -!- nisstyre has quit (Quit: Leaving). 00:46:08 -!- nisstyre has joined. 00:47:05 -!- hogeyui_ has quit (Ping timeout: 272 seconds). 00:53:37 -!- hogeyui_ has joined. 00:55:57 -!- nucular has quit (Ping timeout: 272 seconds). 00:56:54 -!- nucular has joined. 01:15:17 -!- nisstyre has quit (Quit: Leaving). 01:35:33 -!- Sprocklem has quit (Ping timeout: 245 seconds). 01:45:21 zzo38: halp 01:45:50 zzo38: why did this render like this and what do i need to do to fix it: http://esolang.rutteric.com/files/oneill1.4.pdf 01:47:14 quintopia: What part is the problem? 01:47:29 zzo38: hold on 01:48:17 zzo38: never mind. it's just PDF.js sucking. 02:02:17 -!- yorick has quit (Remote host closed the connection). 02:14:23 -!- Phantom_Hoover has quit (Read error: Connection reset by peer). 02:22:40 Is memcpy(malloc(sizeof(x)),&(x),sizeof(x)) proper? 02:23:58 malloc might return NULL 02:24:05 also maybe it's possible for x to have size 0? 02:25:10 I suppose these things are possible, but I don't expect that memcpy should do anything if the size is zero. 02:27:04 malloc(0) is allowed to return NULL on success; I don't know if memcpy(NULL, x, 0) is allowed or not, but what you say is certainly plausible 02:28:41 Am I the only one here getting sudden massive CTCP spam? 02:28:49 * kmc isn't 02:28:53 who's it from? 02:29:06 CJJWCFFDDBAV 02:29:18 If malloc(0) *does* return NULL on success, then memcpy(NULL, x, 0) should be allowed, too; it would be the sensible way. 02:29:19 they aren't in this channel 02:29:26 sounds like a reliable person 02:29:27 seems like freenode is under a spambot attack 02:29:39 zzo38: I agree, however ISO 9899 and POSIX and such are not always sensible :/ 02:34:35 Users being inside #freenode live dangerously it seems 02:35:24 -!- nisstyre has joined. 02:39:43 In my opinion the specification of malloc(0) ought to be: It doesn't matter what it returns (whether it is same every time or different every time, even), as long as free(malloc(0)) is allowed and does not damage the rest of the program, and furthermore that realloc(malloc(0),x) will be like malloc(x), and realloc(malloc(x),0) like malloc(0). 02:41:04 And furthermore, the results of malloc(0) can be used anywhere a pointer to a zero-length object is expected (such as with memcpy and memmove). 02:45:06 -!- nisstyre has quit (Quit: Leaving). 02:46:34 zzo38: yes, free(NULL) is allowed (whether or not malloc(0) returns NULL) 02:48:08 sometimes you see such as #define extra_super_safe_free(x) do { free(x); x = NULL; } while (0) 02:48:21 with the idea that double free() can be dangerous but extra_super_safe_free() is idempotent 02:48:33 Ah, OK. 02:49:03 I just do it myself when it is necessary, although I do suppose to use a macro would work too. 02:49:13 my gut feeling is that this is ``too clever'' and will backfire in some way I'm not anticipating 02:49:17 but *shrug* 02:50:24 You just have to ensure that x is a lvalue without side effects, I would think, as well that the macro is not itself called with a pointer to a object that is already destroyed or invalid 02:50:36 yeah 02:51:53 But it is useful even for reasons other than to be more safe; and actually those other reasons are the ones I would use them for, since rather I just wanted to record that it is not existing anymore. 02:52:05 should C have a "post-assign" operator such that (supposing it were spelled =.) you could do free(x =. NULL) ? 02:52:50 A "post-assign" operator is actually something I have wanted to have, for other reasons too 02:52:56 which reasons? 02:53:24 I do not remember, but I do know I have wanted it for other reasons. 02:54:53 Probably a macro can be made of it in GNU C using ({ ... }) 02:55:35 maybe, but how? 02:56:00 GNU C is basically C fan fiction 03:22:06 -!- nooodl_ has joined. 03:22:43 -!- nooodl has quit (Ping timeout: 252 seconds). 03:26:19 #define post_assign(x,y) ({ typeof(x) local1=x; x=y; local1; }) 03:26:51 hm, I suppose 03:28:17 -!- Sprocklem has joined. 03:53:10 It's better than canon though 03:53:55 -!- tromp_ has joined. 03:53:58 yes 03:54:18 -!- nisstyre has joined. 03:54:44 so what's the language extension equivalent of Erotic Versions of Star Trek Where All the Characters Are Furries, Like Kirk is an Ocelot or Something, and They Put A Furry Version of Themselves as the Star of the Story 03:55:30 -!- Sorella has quit (Remote host closed the connection). 03:59:42 what. 03:59:44 -fgnu-runtime 03:59:57 kmc: i'm absolutely confused by that message. 04:00:18 http://brunching.com/images/geekchartbig.gif 04:00:22 I would totally read that fanfic itt 04:00:32 -fheinous-gnu-extensions 04:01:33 probably one of those C-with-a-shitload-of-macros-and-custom-preprocessor things 04:01:39 like qt but for c, ic an't think of any xxamples 04:01:58 zzo38: from where does the name Black-C come? 04:05:57 -!- nucular has quit (Ping timeout: 246 seconds). 04:26:19 kmc: From my own name. Black is my name. 04:26:29 oh!! right 04:27:19 That’s racist 04:28:25 A lot of arrows go both ways. 04:32:53 ion: dumb 04:33:49 ion: What are you saying is racist? 04:34:28 -!- mauke has quit (Remote host closed the connection). 04:37:21 -!- mauke has joined. 04:44:53 -!- Bike_ has joined. 04:45:32 -!- mauke has quit (Disconnected by services). 04:45:40 -!- mauke has joined. 04:46:13 -!- Bike has quit (Ping timeout: 272 seconds). 04:47:05 -!- preflex has quit (Ping timeout: 246 seconds). 04:47:31 -!- preflex_ has joined. 04:47:57 -!- preflex_ has changed nick to preflex. 05:01:25 -!- carado has quit (Ping timeout: 246 seconds). 05:06:39 There there public domain editions of the Bible which are English and have better quality than KJV (and that include deuterocanonical books, and perhaps also a few others)? 05:06:48 -!- Bike_ has changed nick to Bike. 05:06:52 "There there"? 05:07:06 s/There there/Are there/ 05:08:15 hum, NIV's still in copyright 05:08:20 KJV isn't public domain? oh right, in the UK it's under perpetual Crown copyright 05:08:31 zzo38: seems unlikely. if someone puts in the effort to retranslate, surely they'll want a little bit of recompense for the effort. but then, i don't know if people copyright bible translations ever. 05:08:53 they do 05:08:54 i guess britain did once 05:09:18 wikisource has some http://en.wikisource.org/wiki/Bible 05:09:35 Bike: i would if i had done it, but it seems counter to the goal of spreading it as widely as possible 05:10:14 you still might want to control derivative works, etc 05:10:18 kmc: Yes, it has that problem, but it is also the quality I am looking for (and furthermore, academic more than religious) 05:10:53 academic edition in the pd sounds like a nice dream, unfortunately 05:11:15 zzo38: yeah you're gonna pay for something as high-quality as an oxford bible 05:12:53 maybe shachaf can translate some bible for you 05:13:20 what the hell is gopher wood 05:13:23 quintopia: If I want an actual book (including with an index and everything like that) then I would pay, that would be fine; however I wanted a public domain copy which can be made the plain ASCII file in a computer. 05:14:19 my experience with public domain plaintext is ungood (shudders at memories of victorian-era mahabharata) 05:14:28 of translations* 05:15:16 Bike: a good name for a band, is what 05:15:20 but not as good as Kingpiss 05:15:39 "The World English Bible (also known as the WEB) is a free updated revision of the American Standard Version (1901). It is one of the only public domain, modern-English translations of the entire Bible. It is freely distributed using electronic formats. The Bible was created on the base of the ASV by volunteers on the ebible.org project and edited by Rainbow Missions, Inc., a Colorado nonprofit corporation." 05:15:47 i guess this is probably the best you're going to get 05:16:02 Ah, there it is. 05:16:56 http://achewood.com/index.php?date=01222007 05:18:04 If it isn't in plain text format, it can (hopefully) be converted, and if it contains some errors (in the translation, or just typographical), then can be improved (and if such improvements are made, it should clearly be marked as such; no confusion with original format please!) 05:18:17 Which books is it including/excluding? 05:19:28 looks like it's got the usual stuff and the deuterocanon 05:19:47 if you want mary or enoch i dunno what to tell you 05:19:59 That is good then, since some don't have deuterocanon. 05:20:00 deuterocannon 05:40:13 hi kmc 05:40:23 am in sf 05:40:42 good city 05:46:39 cool 05:46:47 translate any bibles lately? 05:47:01 what's in sf anyway 05:47:58 no. 05:48:07 um. wrong window. 05:48:19 i assert that in sf is no 05:49:58 are you prolog 05:50:35 no. 05:50:47 -!- tromp__ has joined. 05:53:20 -!- tromp_ has quit (Ping timeout: 245 seconds). 06:13:15 -!- nooodl_ has quit (Quit: Ik ga weg). 06:27:00 -!- Bike has quit (Ping timeout: 246 seconds). 06:28:56 -!- Bike has joined. 07:03:22 -!- nisstyre has quit (Quit: Leaving). 07:15:31 Pokemon Yellow... is turing complete 07:15:32 http://beza1e1.tuxen.de/articles/accidentally_turing_complete.html 07:15:32 way 07:15:34 *wat 07:19:33 it's only turing complete since like, it has an arbitrary code execution vulnerability, right? 07:21:48 That's silly, the cartridge doesn't have an infinite amount of RAM in it. 07:22:47 Fiora: yes 07:22:56 "Stuff which is somehow limited (stack overflows, arbitrary configuration, etc) is still considered Turing complete, since all "physical" Turing machines are resource limited." 07:33:30 you should all watch the video corresponding to that hack 07:33:37 a good tas 07:34:05 http://www.youtube.com/watch?v=3UnB1fomvAw i think it's this one 07:35:50 you can kinda see reality disintegrate 07:43:18 -!- Sprocklem has quit (Ping timeout: 246 seconds). 07:51:08 -!- impomatic has quit (Quit: impomatic). 08:08:27 -!- tromp_ has joined. 08:10:47 -!- tromp__ has quit (Ping timeout: 272 seconds). 08:14:13 -!- tromp_ has quit (Ping timeout: 272 seconds). 08:14:41 -!- tromp_ has joined. 08:49:27 mauke: Even if the universe were infinite? 08:56:48 -!- heroux has quit (Ping timeout: 245 seconds). 08:57:47 -!- heroux has joined. 09:00:37 -!- oerjan has joined. 09:05:54 -!- copumpkin has quit (Ping timeout: 246 seconds). 09:09:19 -!- LinearInterpol has quit (Ping timeout: 272 seconds). 09:10:07 -!- copumpkin has joined. 09:13:51 Q: what is the standard measure of old data? 09:13:51 A: The trilobyte. 09:18:12 what a silurious joke 09:34:37 @ask nucular Am I the only one here getting sudden massive CTCP spam? <-- have you set the +i flag on yourself? iiuc it makes you invisible to spammers not in the same channel. 09:34:37 Consider it noted. 09:35:56 oh he's in #freenode 10:04:43 that'll do it 11:05:35 -!- impomatic has joined. 11:25:06 i don't think "turing-complete" could even apply to pokemon yellow 11:25:34 gsc has a simple scripting system for in-game events and i assume you could figure its computational class 11:26:46 tertu: well 11:27:02 http://tasvideos.org/3767S.html 11:27:44 i guess the arrangement of the items is some sort of language 11:35:58 -!- tertu has quit (Ping timeout: 245 seconds). 11:42:51 -!- copumpkin has quit (Ping timeout: 260 seconds). 11:47:37 -!- copumpkin has joined. 11:48:23 Calling rebooting the game while saving to corrupt memory a "valid action[] (like walking from one place to another or buying items)" is kind of stretching it. 11:53:21 I bumped into one of my old sort-of friends from high school 11:53:26 Apparently he now programs in Haskell 11:53:32 Everything in a TAS is allowed as long as it would be technically (but probably not) possible with just the original hardware, and it gets you to the ending screen 11:53:44 Taneb: Talk to him about Haskell! 11:53:49 FreeFull, I did! 11:54:00 He... has no experience with a lot of features of Haskell 11:54:08 have you accepted haskell curry as your lord and savior? 11:54:11 I've heard Earthbound's dialogue thing is a kinda complex scripting language 11:54:18 Be his Jedi teacher 11:55:20 FreeFull: It wasn't really about what's allowed or not in a TAS, more about the chess analogy in the description. (Anyway, this run doesn't go to the ending screen.) 11:55:35 > [False] >>= \b -> False : if b then [True] else [] 11:55:36 [False] 11:55:43 it does go to *an* ending screen 11:55:52 > [False] >>= \b -> False : if b then [] else [True] 11:55:53 [False,True] 11:56:24 > let f b = False : if b then [] else [True] in [False] >>= f >>= f >>= f 11:56:25 [False,True,False,False,True] 11:57:31 > let f 0 = [0,1]; f 1 = [0] in [0] >>= f >>= f >>= f 11:57:32 [0,1,0,0,1] 11:57:37 > let f 0 = [0,1]; f 1 = [0] in [0] >>= f >>= f >>= f >>= f 11:57:38 [0,1,0,0,1,0,1,0] 11:57:42 :) 11:59:08 > let f = ([id,(1-)]??) in [0] >>= f >>= f >>= f >>= f 11:59:10 [0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0] 12:01:37 What's this sequence called again? 12:01:50 the thor-moose sequence hth 12:01:53 I tried looking for it but found the dragon curve sequence instead 12:02:02 Ah, that's it 12:02:55 Thue-Morse sequence 12:03:00 That's better 12:03:10 The thor-moose sequence sounds very Norwegian. 12:03:16 (I was doing Lindenmayer's algae) 12:03:18 It does 12:03:24 fizzie: surprisingly so was thue. 12:04:02 Taneb: i thought i recognized the fibonacci substitution. 12:04:28 or something like it. 12:04:45 > let thue = 0 : map (1-) thue in thue 12:04:47 [0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1... 12:04:57 Ok, that didn't work out =P 12:05:05 you don't say 12:05:09 oerjan, yeah, it's quite close to the fibonacci one 12:05:29 > let f 0 = [0,1]; f 1 = [0] in [1] >>= f >>= f >>= f >>= f 12:05:30 [0,1,0,0,1] 12:05:37 That's the Fibonacci one 12:05:50 hm right there should be no fixpoint. 12:06:06 > let f 0 = [0,1]; f 1 = [0] in [1] >>= f >>= f >>= f >>= f >>= f 12:06:08 [0,1,0,0,1,0,1,0] 12:06:13 > let f 0 = [0,1]; f 1 = [0] in [1] >>= f >>= f >>= f >>= f >>= f >>= f 12:06:14 [0,1,0,0,1,0,1,0,0,1,0,0,1] 12:06:22 How do you do an infinite list of thue-morse? 12:06:33 > let f 0 = [0,1]; f 1 = [0] in fix (>=> f) [1] 12:06:34 *Exception: stack overflow 12:06:48 > let f 0 = [0,1]; f 1 = [0] in fix (f >=> ) [1] 12:06:49 No instance for (GHC.Num.Num t0) arising from the literal `1' 12:06:49 The type variable `t0' is ambiguous 12:06:49 Possible fix: add a type signature that fixes these type variable(s) 12:06:49 Note: there are several potential instances: 12:06:49 instance GHC.Num.Num GHC.Types.Double 12:06:59 @type let f 0 = [0,1]; f 1 = [0] in fix (f >=> ) 12:07:00 (Eq b, Num b) => b -> [c] 12:07:05 :( 12:07:12 @type let f 0 = [0,1]; f 1 = [0] in fix (>=> f) 12:07:12 (Eq b, Num b) => a -> [b] 12:07:18 @type let f 0 = [0,1]; f 1 = [0] in fix (>>= f) 12:07:19 (Eq a, Num a) => [a] 12:07:24 :( 12:07:34 > fix ((0:).drop 1.concatMap([id,(1-)]??)) 12:07:36 [0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1... 12:08:45 oerjan: Unnecessary space between the fix and ( 12:08:58 picky 12:09:07 > fix$(0:).drop 1.concatMap([id,(1-)]??) 12:09:08 [0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1... 12:09:17 > drop 1 "hllo" 12:09:19 "llo" 12:09:19 No 12:09:22 > tail "hllo" 12:09:23 "llo" 12:09:24 I mean, you can just drop the space altogether 12:09:36 > fix((0:).drop 1.concatMap([id,(1-)]??)) 12:09:38 [0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1... 12:09:45 that is longer than switching to $ 12:09:54 True 12:10:09 > fix$(0:).tail.(=<<)([id,(-1)]??) 12:10:10 No instance for (GHC.Show.Show a0) 12:10:10 arising from a use of `M47647106981436577086096.show_M47647106981436577086... 12:10:10 The type variable `a0' is ambiguous 12:10:10 Possible fix: add a type signature that fixes these type variable(s) 12:10:10 Note: there are several potential instances: 12:10:17 Yaaaay 12:10:30 @type (=<<( 12:10:31 parse error (possibly incorrect indentation or mismatched brackets) 12:10:32 @type (=<<) 12:10:33 Monad m => (a -> m b) -> m a -> m b 12:10:42 @type concatMap 12:10:43 (a -> [b]) -> [a] -> [b] 12:10:45 :t (=<<)([id,(-1)]??) 12:10:46 Num (b -> b) => [b] -> [b] 12:10:51 That's not right 12:11:10 It uses the reader monad there 12:11:10 > fix$(0:).tail.(=<<)([id,(1-)]??) 12:11:12 [0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1... 12:11:17 Typo :) 12:11:48 Ah 12:11:53 Yeah, 1- 12:12:13 Didn't even notice that 12:12:24 > complement 1 12:12:25 -2 12:12:28 :( 12:12:34 > complement 0 12:12:35 -1 12:14:07 > fix$(0:).tail.(<**>[id,(1-)]) 12:14:08 [0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1... 12:22:55 It occurs to me I have no idea how to write a Thue-Morse sequence program in C 12:30:59 It depends on how much you want to output 12:31:09 If you want to keep outputting forever, you'll run out of memory 12:32:40 Well, I've written /something/ that seems to work 12:34:08 Only 5 KB compiled, too! 12:40:25 "Icon Programming for Humanists" 12:40:26 Wat. 12:42:24 Icon having null is presented as an innovation compared to SNOBOL 12:42:30 (in this article on rosettacode) 12:42:35 http://rosettacode.org/wiki/Icon%2BUnicon/Intro 12:42:47 I... guess I can see how, especially after having experienced Tcl 12:46:49 * oklopol can play about a minute of thue-morse on guitar 12:50:00 Unicon IDE... seems to be taking forever to compile Hello world 12:52:53 Oh, I think the IDE is suppressing errors or something, because I got this running unicon from command line" 12:52:55 "unicon: cannot open interpreter file" 12:55:07 Hmm, didn't I complain about the (Un?)icon trick that powers 3 < x < 5 etc. being... weak somehow? 12:57:23 -!- nooodl has joined. 12:57:25 (x | y) = (3 | 5) 12:57:47 > let x = 10; y = 5 in any $ (==) <$> [x, y] <*> [3,5] 12:57:48 Couldn't match expected type `a0 -> GHC.Types.Bool' 12:57:48 with actual type `[GHC.Types.Bool]' 12:58:02 :t any 12:58:03 (a -> Bool) -> [a] -> Bool 12:58:21 > let x = 10; y = 5 in any id $ (==) <$> [x, y] <*> [3,5] 12:58:22 True 12:58:45 :t and 12:58:46 [Bool] -> Bool 12:58:50 (Possibly what you were looking for.) 12:59:27 :t or 12:59:27 Er, "or" is what I meant. 12:59:28 [Bool] -> Bool 12:59:31 even more possibly! 12:59:43 In fact, 12:59:46 @src any 12:59:47 any p = or . map p 13:01:34 Unicon basically lives in the List monad, right? 13:12:31 Wait, why does table lookup need a "default" that defaults to &null? 13:12:47 I thought Icon/Unicon's who schtick was avoiding that nonsense and just failing? 13:12:52 *whole 13:13:12 Which, it occurs to me, doesn't work too well when there are multiple layers that may 'fail' 13:20:46 `addquote * oklopol can play about a minute of thue-morse on guitar 13:20:53 1150) * oklopol can play about a minute of thue-morse on guitar 13:26:44 -!- yorick has joined. 13:27:54 -!- tromp__ has joined. 13:29:11 -!- olsner has joined. 13:30:15 -!- tromp_ has quit (Ping timeout: 272 seconds). 13:33:57 -!- olsner has quit (Ping timeout: 252 seconds). 13:34:27 -!- Sorella has joined. 13:35:08 -!- Sorella has quit (Changing host). 13:35:08 -!- Sorella has joined. 13:44:33 @src or 13:44:33 or = foldr (||) False 13:44:45 should be or = any id 13:54:08 @src any 13:54:08 any p = or . map p 13:54:38 Could get a bit uselessly recursive 14:03:40 -!- olsner has joined. 14:04:11 In a non-lazy language, I can definitely see the any being primitive and or being derived as more efficient 14:04:22 (Or, well, if working with non-lazy lists) 14:07:36 -!- carado has joined. 14:13:29 -!- Sorella has quit (Read error: Connection reset by peer). 14:13:41 -!- Sorella has joined. 14:14:24 -!- Sorella has quit (Changing host). 14:14:24 -!- Sorella has joined. 14:15:02 -!- oerjan has quit (Quit: leaving). 14:40:46 "Warning:For each data type discussed in section, there is a corresponding module in the Mozart system. The modules define operations on the corresponding data type. You may find more about these operations in The Oz Base Environment documentation" 14:40:52 Why is this a warning? 15:04:47 hi Sorella 15:09:51 -!- olsner has quit (Quit: Leaving). 15:12:13 -!- Sgeo has quit (Read error: Connection reset by peer). 15:13:27 -!- Sgeo has joined. 15:14:49 $$f_x(y)=\left(f_{x-1}^{y!}(y!)\right)^x+y$$ (where ^{y!} is a functional power) 15:17:38 -!- tromp__ has quit (Read error: Connection reset by peer). 15:18:05 -!- tromp_ has joined. 15:23:10 This is a kind of shogi variant, where initially all pieces is known, but later on, it might not be known exactly what kind of pieces they are, but you can try to figure out what it is. http://www.chessvariants.org/index/msdisplay.php?itemid=MSunknownoffpiec 15:28:10 -!- FreeFull_ has joined. 15:28:17 -!- augur_ has joined. 15:28:28 -!- heroux_ has joined. 15:28:32 -!- pikhq has joined. 15:29:00 -!- coppro_ has joined. 15:33:24 -!- heroux has quit (*.net *.split). 15:33:24 -!- augur has quit (*.net *.split). 15:33:24 -!- pikhq_ has quit (*.net *.split). 15:33:25 -!- FreeFull has quit (*.net *.split). 15:33:25 -!- coppro has quit (*.net *.split). 15:33:29 -!- heroux_ has changed nick to heroux. 15:50:43 "In Oz there is syntactic support for module specification. The concept used is called functor ." 15:50:52 DRINK for a language using the term 'functor' for something 15:51:00 Although, is that the same meaning as in *MLs? 15:52:15 -!- Phantom_Hoover has joined. 15:57:25 Functor? I hardly know her! 16:06:25 I really dislike the C++ use of the term functor 16:06:41 It is basically an object overloading operator(), thus making it callable. 16:07:13 Ok, Oz's ByNeed is interesting 16:07:31 Basically, takes an explicit thunk and turns it into a lazy value 16:08:24 Hmm, guess that's the same as any language that has some sort of native promise thing 16:22:26 bbl 17:01:35 -!- tertu has joined. 17:06:26 -!- Phantom_Hoover has quit (Write error: Broken pipe). 17:06:32 -!- Phantom__Hoover has joined. 17:06:42 -!- LinearInterpol has joined. 17:13:25 -!- Taneb has quit (*.net *.split). 17:13:25 -!- ineiros_ has quit (*.net *.split). 17:13:25 -!- aloril has quit (*.net *.split). 17:13:26 -!- kmc has quit (*.net *.split). 17:14:26 -!- Taneb has joined. 17:14:36 -!- ineiros has joined. 17:15:16 -!- kmc has joined. 17:19:46 -!- aloril has joined. 17:26:00 :/ :/ :/ 17:26:10 I'm running Java 1.4 :/ 17:28:53 -!- LinearInterpol has changed nick to [li]|AoS. 17:36:53 -!- MindlessDrone has joined. 17:50:59 -!- [li]|AoS has quit (Ping timeout: 252 seconds). 17:52:53 Sgeo: I'm sorry :| 17:53:03 This program depends on <7 17:53:12 And has an installer that includes 4 17:53:21 Trying to figure out WHY 7 breaks it 17:56:40 -!- Jafet has quit (Ping timeout: 240 seconds). 17:57:09 -!- Tefaj has joined. 17:59:58 -!- nooodl has quit (Quit: Ik ga weg). 18:00:02 -!- boily has joined. 18:02:28 -!- nooodl has joined. 18:10:26 -!- int-e has quit (Ping timeout: 264 seconds). 18:10:50 -!- int-e has joined. 18:32:43 -!- Tefaj has quit (Changing host). 18:32:44 -!- Tefaj has joined. 18:32:48 -!- Tefaj has changed nick to Jafet. 18:33:11 -!- Jafet has left. 18:46:07 -!- nisstyre has joined. 18:55:29 Ok. FUCK JUSTIN.TV IN THE ASS 18:56:37 don't want to 18:56:41 but why 18:57:12 Information that that site portrays as confidential (a key to broadcast to a user's stream) is easily accessible by a link that you can make just by knowing a username 19:01:26 nice, did you report this vuln? 19:01:39 No, haven't tested it yet 19:01:48 Want a volunteer 19:02:28 (That's not unethical, right?) 19:04:12 Hmm. False alarm. 19:05:38 So yeah, URL contains username, but that doesn't mean you'll actually see that user's file 19:05:38 It will show your own instead 19:22:09 good alarmist fternoon! 19:23:02 :3 19:36:17 -!- ais523 has joined. 19:41:28 -!- AnotherTest has joined. 19:47:06 -!- _46bit_ has changed nick to _46bit. 19:47:11 -!- _46bit has quit (Changing host). 19:47:11 -!- _46bit has joined. 19:49:39 -!- coppro_ has changed nick to coppro. 19:52:10 -!- carado has quit (Ping timeout: 246 seconds). 19:54:04 -!- Edward___ has joined. 19:54:55 -!- olsner has joined. 19:55:13 -!- Edward___ has changed nick to Edwardz. 20:00:09 -!- carado has joined. 20:02:01 new favorite language: http://esolangs.org/wiki/Suicide 20:03:35 -!- nisstyre has quit (Quit: Leaving). 20:03:58 -!- Edwardz has quit (Quit: Page closed). 20:26:12 hi boily 20:29:02 -!- AnotherTest has quit (Ping timeout: 240 seconds). 20:30:02 -!- AnotherTest has joined. 20:40:04 Is there a neat algorithm to turn an image of a 3d wireframe back into a 3d vector map? 20:41:04 you mean, you're taking a 2d projection of a wireframe? 20:41:10 -!- olsner has quit (Ping timeout: 246 seconds). 20:42:09 impomatic: i think you would need at least two images of the wireframe from different angles 20:42:27 taking a 2d projection of a wireframe and working out the position of the 3d vectors. 20:42:28 and even then you have no guarantee due to inherent ambiguities 20:42:42 yes, that's definitely ambiguous 20:42:55 for example, the 3d figure could be flat :') 20:43:27 Bike: that would be noticed in the 2 images case 20:43:45 Bike: also you remind me of that new zealand art farm with the giant wire frame kleenex 20:58:56 hi quintopia 21:03:49 how sunday 21:05:21 many zombies 21:06:08 -!- oerjan has joined. 21:07:26 what 21:07:35 tell me about the zombies 21:08:12 I was watching Shawn of the Dead with my dad :D 21:08:55 oh good choice 21:10:28 still dominicquing under the Hot Ball of Hydrogen? 21:10:47 no that ended christmas day 21:10:59 today i walked the dog 21:11:06 around stone mountain 21:11:22 if you want to come to atlanta, i'll walk you around stone mountain too :) 21:11:56 * boily looks at wikipédia's pictures of Stone Mountain. “it looks like a big rock.” 21:12:43 conversely, if you come to Montréal, there's Mont Royal. 21:12:57 (not quite as impressive, but it has weird Montrealers on it :D) 21:13:00 ...what a fitting name for the city 21:13:35 well, at first it was called Ville Marie. that's still the name of the Old Town borough. 21:13:48 stone mountain is probably about the same. it is a weird park. the other day i climbed it and there was a dude playing and singing oldies songs halfway up walking up and down in the woods with his guitar 21:14:19 logically, if they call a mountain stone mountain, there should be some other nearby mountain _not_ made of stone. 21:15:33 oerjan: it's perfectly logical when you consider that kennesaw mountin is entirely covered in trees and dirt. that stuff won't grow on the bubble of pure granite that is stone mountain. 21:15:42 aha 21:15:51 in fact, there is no mountain nearby. it's rather a geological anomaly. 21:16:31 i assume from the spelling that kennesaw mountin has even more hillbillies 21:17:33 oerjan: better to assume i am a bad speller. kennesaw mountain is in the heart of one of atlanta's richer suburbs. not the richest, but solidly middle class. 21:17:55 fancy 21:19:18 it's also the site of kennesaw mountain national battlefield park, and one of the bloodier battles of the civil war. 21:19:33 Basically, takes an explicit thunk and turns it into a lazy value <-- well that's just unsafePerformIO really >:) 21:20:55 oerjan: shh! the Maskarade! don't go and tell People the Dirty Haskell Secrets! 21:21:05 -!- olsner has joined. 21:36:26 boily: ok i'll come to montreal and you'll come to atlanta. consecutively. we'll make a vacation of it! 21:36:31 let me know when 21:37:59 -!- nooodl has quit (Quit: Leaving). 21:51:18 -!- MindlessDrone has quit (Quit: MindlessDrone). 21:56:05 -!- nooodl has joined. 21:58:47 -!- FreeFull_ has changed nick to FreeFull. 22:04:24 > (2560*1440) / (1280 * 768) 22:04:25 3.75 22:05:11 > (2560*1440) % (1280 * 768) 22:05:12 15 % 4 22:10:53 -!- zzo38 has quit (Remote host closed the connection). 22:26:03 -!- AnotherTest has quit (Ping timeout: 272 seconds). 22:35:51 -!- conehead has joined. 22:35:53 -!- olsner has quit (Ping timeout: 252 seconds). 22:37:15 -!- conehead has quit (Remote host closed the connection). 22:38:36 -!- conehead has joined. 22:58:33 -!- boily has quit (Ping timeout: 246 seconds). 22:59:15 -!- zzo38 has joined. 23:03:53 -!- int-e has quit (Ping timeout: 245 seconds). 23:05:49 -!- int-e has joined. 23:06:05 -!- zzo38 has quit (Remote host closed the connection). 23:11:14 -!- conehead has quit (Quit: Computer has gone to sleep.). 23:22:26 -!- olsner has joined. 23:44:12 -!- ais523 has quit. 23:48:37 I just finished Brothers - A Tale of Two Sons. It is my new game of the year. 23:49:12 good timing 23:50:13 Bike, yeah 23:50:40 And I think it is definitely in the top 3 of all time as well 23:51:06 i hope these timings are not related 23:51:23 Bike, what other timing? 23:51:35 I just reattached to my bnc 23:51:52 you picked your game of the year near the end of the year, and your game of all time... 23:52:00 oh right 23:52:34 's ok time was overrated anyway