< 1203552045 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: basically < 1203552062 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :if you have a monadic option linking output, getting a line, some pure stuff, and outputting another line, < 1203552084 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :the pure stuff is done lazily but the IO depends on the previous one so the evaluator HAS to do it in order < 1203552088 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :while requiring no changes < 1203552134 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Even if the output is itself a function? < 1203552173 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :It will basically be like this. You've got 0, you've got + for successor, a bunch of functions. < 1203552175 0 :puzzlet_!n=puzzlet@147.46.241.160 JOIN :#esoteric < 1203552179 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: Look < 1203552181 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :just go into #haskell < 1203552184 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :and ask loads of questions < 1203552184 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1203552193 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I'm scared. < 1203552202 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :There's people there. Talking about Haskell. < 1203552205 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :#haskell is the friendliest programming language channel around < 1203552214 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Haskell was that black guy in cube Zero. Killed the fat guy! < 1203552226 0 :Corun!unknown@unknown.invalid QUIT :"I'm nuts and Neil's a nut, therefor I am NEILS!" < 1203552581 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :ACTION be printing the Haskell tutorial < 1203552642 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: YAHT? < 1203552652 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :The Wiki one < 1203552669 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :no < 1203552670 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :don't < 1203552671 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :do YAHT < 1203552673 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric ::o < 1203552691 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :there, i shoved you into #haskell < 1203552696 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :don't worry. we don't bite. :) < 1203552810 0 :jix!unknown@unknown.invalid QUIT :"CommandQ" < 1203552881 0 :puzzlet!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1203552885 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: boo! talk! < 1203552935 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :YAHT is printing. < 1203552941 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :192 pages, it's going to be a while. < 1203552979 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :printing? :S < 1203553003 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :You know, throwing ink on paper in shapes < 1203553033 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: why not just read it < 1203553051 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :What, you want me to read that on a screen? < 1203553057 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :um < 1203553057 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1203553066 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :get a nice big font and a good pdf reader < 1203553068 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :it's comfy < 1203553077 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :you need to do YAHT interactively, anyway. it's best. < 1203553079 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :My chair isn't that comfy though. < 1203553117 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :You're going to do it away from a computer ...?! < 1203553120 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :You'll never learn Haskell! < 1203553123 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric ::o < 1203553130 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :You need to have Emacs and ghci there, open. :-P < 1203553142 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I don't have Emacs :o < 1203553146 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I use Kate. < 1203553200 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :It has Haskell highlighting. < 1203553217 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :emacs!? you *never* need emacs :P < 1203553243 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It's not that you need Emacs. < 1203553264 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :You don't need to live, either. < 1203553329 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :What does macs have besides highlighting? < 1203553368 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: emacs is the only solution for haskell code < 1203553372 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :well some people use vim (masochists) < 1203553380 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :But why! < 1203553383 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: haskell's syntax is indentation-based < 1203553388 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :its very tedious to do manually < 1203553392 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :haskell-mode for emacs is VERY smart < 1203553395 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Oh. < 1203553398 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :it also has an integrated ghci < 1203553400 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :in a bottom pane < 1203553402 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :and all sorts of stuff < 1203553413 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :basically, haskell development without it is 99% repetetive key mashing < 1203553414 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1203553450 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Let's get them Emacs then. < 1203553506 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :indeed < 1203553520 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: sudo apt-get install emacs-snapshot-gtk emacs-goodies-el < 1203553529 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :that will get you the best emacs for general use < 1203553530 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :No need. < 1203553534 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :"Adept installer" < 1203553535 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :no < 1203553536 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :no < 1203553536 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :no < 1203553539 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :that gets you the wrong emacs < 1203553540 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :an older one < 1203553542 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :and no goodies < 1203553543 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :D: < 1203553553 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :blame ubuntu < 1203553553 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1203553564 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Damn you Ubuntu! < 1203553791 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :"No space left on device" < 1203553791 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :SCIENTOLOGY: < 1203553792 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :$ grep thetans /dev/soul | xargs rm -rf < 1203553793 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Oh shi- < 1203553958 0 :timotiis!unknown@unknown.invalid QUIT :"leaving" < 1203554072 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Seems my porn folder is hogging space on the Linux partition! < 1203554077 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Time to move it < 1203554300 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :ACTION has Emacs < 1203554334 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: The right one? < 1203554350 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :If so, then you have emacs in some menu somewhere. < 1203554359 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Start it, then type 'C-h t' (CTRL-h, t) < 1203554364 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :follow it through. < 1203554368 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :now you know how to use emacs. :P < 1203554439 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :[Middle of page left blank for didactic purposes. Text continues below] < 1203554446 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :That statement is so self-defeating < 1203554456 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: whatever. < 1203554459 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :just do what it says < 1203554461 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :and nothing else :P < 1203554470 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oh, and throw your mouse to the back of your desk until you're done. < 1203554508 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Not Mousey! < 1203554579 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :They use ctrl x-c-v for something else than copypasta? < 1203554584 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :What madhouse is this! < 1203554656 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: The madhouse of productivity and speed. < 1203554664 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :JUST SAYIN' < 1203554669 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :also, Slereah ... < 1203554675 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :say goodbye to your arrow keys. < 1203554681 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Nooooooooooooooooooooooooooooooooooo < 1203554683 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Ctrl-N, Ctrl-P, Ctrl-F, Ctrl-B are your gods now. < 1203554705 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :(Note: emacs came around before any of these things that you're used to existed. It's not just difference for the sake of it; and most people who use emacs today find them nicer.) < 1203554720 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :(Emacs came around circa 1980s at MIT.) < 1203554723 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :What if I don't? < 1203554735 0 :puzzlet!n=puzzlet@147.46.241.160 JOIN :#esoteric < 1203554758 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I'm already not that fond of remembering which alt key actually works < 1203554794 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: You've used emacs for about 5 minutes, and even then not much. < 1203554794 0 :puzzlet_!unknown@unknown.invalid QUIT :Remote closed the connection < 1203554794 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :You've used ctrl x-c-v, and the arrow keys, your entire computing experience. < 1203554795 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Of course you're not faster yet. < 1203554821 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :The arrow keys seems to work fine on their own though < 1203554865 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: No. < 1203554871 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :They do function < 1203554874 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :But you shouldn't use them. < 1203554875 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Just don't. < 1203554881 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :They make your hands move more. < 1203554895 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :So does the bfnp :o < 1203554914 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :They're not even in a cluster, or with some logic in their disposition. < 1203554962 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: Back,Forwards,Next,Previous < 1203554966 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :And.. you can touch-type, right? < 1203554985 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Pretty much. < 1203554993 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :home row? < 1203554999 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :If so, then you'll get used to it pretty quickly. < 1203555004 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Home row? < 1203555008 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :err < 1203555010 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :asdfghjkl < 1203555013 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :you know? < 1203555022 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Apparently not. < 1203555024 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :with the dent on f and j.. < 1203555029 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :and you keep your fingers there... < 1203555033 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric ::| you can't touch-type, can you < 1203555036 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :don't you mean aieo htns? :P < 1203555043 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :olsner: i doubt Slereah uses dvorak. < 1203555048 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :if he doesn't know how to touch-type. < 1203555062 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :hehe, just saying... < 1203555065 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I use AZERTY. < 1203555080 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :And I indeed don't need to look much at it. < 1203555101 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Though I keep my eyes on the screen. Once in a while, I'm one key off and write gibberish. < 1203555138 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: Do you keep your fingers onthe middle row? < 1203555145 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :And never stray from it, just moving your fingers to the keys? < 1203555152 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :If not -- you can't touch-type. Go learn that, first. < 1203555167 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I do not do that, no. < 1203555178 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :olsner: Can you please be my window of sanity? < 1203555256 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :olsner: Please? :( < 1203555258 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :sanity!? mind you, it is in #esoteric you're asking this question < 1203555272 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :olsner: More than Slereah? < 1203555330 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :I don't really touch-type though... more like mostly-hitting-the-right-key < 1203555356 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric ::'( < 1203555374 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Same here. And really, I'm not sure I need to learn sum touch typing. < 1203555380 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I'm not in a speed competition. < 1203555392 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :I mostly keep my fingers at the home row, but often happen to use some other position... which happens to work since I know where my fingers are < 1203555424 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :ACTION doesn't even use moar than two fingers :o < 1203555432 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :also, coding on a swedish keyboard require a lot of AltGr:ing < 1203555456 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :latex is especially gruesome, {[]}\~ all being AltGr combinations < 1203555460 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: what? you type with TWO FINGERS?! < 1203555461 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :hunt and peck?! < 1203555465 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1203555467 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Yes I do. < 1203555469 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :how the heck did you get into esolangs. < 1203555484 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird`: lol D: < 1203555489 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Because I can type fast enough. < 1203555491 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :the need for an ultra-terse language? heh < 1203555517 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Plus, I don't need to type fast for esolangs. < 1203555527 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: are you as sad as i am < 1203555527 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Who codes in brainfuck as fast as he types? < 1203555529 0 :ehird`!unknown@unknown.invalid PRIVMSG #esoteric :D: < 1203555617 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird`: nope < 1203555621 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm not sad < 1203555637 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i know a guy who uses two fingers and types error-free, and as fast as me < 1203555668 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :After using the keyboard for ten years, you know where the keys are! < 1203555668 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't type error-free, not on the computer, not on paper. < 1203555710 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and it's not that i typo, i just simply write wrong letters. < 1203555818 0 :ehird`!unknown@unknown.invalid QUIT :"K-Lined by peer" < 1203555851 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :It was too much for him. < 1203555920 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION starts forcing down "April 4th of September" down people's throats < 1203556214 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: btw. are you going to start something new after psox? < 1203556228 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :"after PSOX"? < 1203556240 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Probably lose interest and go back to SL or something < 1203556249 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :sl? < 1203556264 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Second Life. < 1203556281 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1203556298 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I might not know your computer stuff, but I sure know the nerd stuff! < 1203556347 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i have no idea about anything. < 1203557225 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Is it just me, or is DeVeDe slow? < 1203557238 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Whut? < 1203557296 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :DeVeDe == DVD video making thingy < 1203557304 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :And it seems to be SLOW < 1203557310 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Although it is converting from flv.. < 1203558166 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :ACTION 's hungry < 1203564591 0 :immibis!n=immibis@125-236-142-139.broadband-telecom.global-gateway.net.nz JOIN :#esoteric < 1203565419 0 :Sgeo!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1203565546 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :so, did anyone actually see these? < 1203565547 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :http://rodger.nonlogic.org/dump/images/1203488516-art1.png < 1203565551 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :http://rodger.nonlogic.org/dump/images/1203488528-art2.png < 1203565602 0 :Sgeo!n=Anonymou@ool-18bf68ca.dyn.optonline.net JOIN :#esoteric < 1203565610 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :sgeo didn't. < 1203565659 0 :AlliedEnvy!n=AlliedEn@150.208.201.65 JOIN :#esoteric < 1203565798 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :also, here's a really old comic from several years ago: http://www.nonlogic.org/dump/images/1203565552-urge.gif < 1203565824 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :http://qdb.us/143471 < 1203565858 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Your name's John? < 1203565902 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :woah, since when did the qdb auto-accept shit? < 1203565907 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: correct < 1203565919 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Then. . . Why Rodger? < 1203565930 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :complicated < 1203565964 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :'Complicated', as in 'requires a small doctoral dissertation'? < 1203565999 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :olsner: Ouch; that keyboard sounds horrible for coding. < 1203566061 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION prefers his US keyboard < 1203566065 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :AltGr? Bah. < 1203566072 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Shift at the most. < 1203566081 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Granted, it doesn't do more than ASCII. . . ;) < 1203566099 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :so your name's john and your address is somewhere near Townsend Drive, Houghton, MI 49931-1295, USA < 1203566110 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :yup < 1203566117 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I make it no secret that I go to MTU < 1203566121 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I assume that's where the dorms are? < 1203566136 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :you could even use the MTU directory search to dig up more info on me, like my room phone number! Woo! < 1203566142 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :duh....[16:53] ->> RodgerTheGreat is n=Rodger@wads-5-233-27.resnet.mtu.edu (Rodger) < 1203566155 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :'course, I don't have a phone plugged in, so your options will be limited < 1203566172 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :there is no such thing as anonymity on the internet < 1203566179 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :tor? < 1203566189 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Anonet? < 1203566381 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :there appears to be at least one car driving around near mtu. Not that's important information. < 1203566404 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :no wait, there are quite a few for the middle of the night. < 1203566477 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :pretty cold over there, isn't it? < 1203566483 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :yes, rather < 1203566524 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :-14 degrees C < 1203566545 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :so, no comments on any of those images aside from creepy internet detective activity? < 1203566667 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :ACTION looks at the images < 1203566813 0 :GreaseMonkey!n=saru@122-57-224-108.jetstream.xtra.co.nz JOIN :#esoteric < 1203566820 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :hey, GreaseMonkey < 1203566844 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :'lo < 1203568553 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I didn;t what? < 1203568557 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :also, brb < 1203572289 0 :Tritonio_!n=Tritonio@150.140.227.117 JOIN :#esoteric < 1203572408 0 :Tritonio__!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1203573123 0 :Sgeo!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1203573798 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1203575041 0 :puzzlet_!n=puzzlet@147.46.241.160 JOIN :#esoteric < 1203575086 0 :puzzlet!unknown@unknown.invalid QUIT :Remote closed the connection < 1203575143 0 :BMeph!unknown@unknown.invalid QUIT :"calls it a night" < 1203575511 0 :cherez!unknown@unknown.invalid QUIT :kornbluth.freenode.net irc.freenode.net < 1203575539 0 :cherez!n=cherez@r02snw275.desktop.umr.edu JOIN :#esoteric < 1203579972 0 :bsmntbombdood__!n=gavin_@75-166-180-115.hlrn.qwest.net JOIN :#esoteric < 1203580036 0 :bsmntbombdood!unknown@unknown.invalid QUIT :Nick collision from services. < 1203580038 0 :bsmntbombdood__!unknown@unknown.invalid NICK :bsmntbombdood < 1203580799 0 :clog!unknown@unknown.invalid QUIT :ended < 1203580800 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1203581029 0 :immibis!unknown@unknown.invalid QUIT :Client Quit < 1203581402 0 :AnMaster!unknown@unknown.invalid QUIT :Connection timed out < 1203582159 0 :GreaseMonkey!unknown@unknown.invalid QUIT :"Hi Im a qit msg virus. Pls rplce ur old qit msg wit tis 1 & hlp me tk ovr th wrld of IRC. and dlte ur files. thx." < 1203582764 0 :AnMaster!n=AnMaster@unaffiliated/anmaster JOIN :#esoteric < 1203584199 0 :oerjan!unknown@unknown.invalid QUIT :"leaving" < 1203586938 0 :jix!i=jix@78.47.212.92 JOIN :#esoteric < 1203590742 0 :Corun!n=Corun@halls-129-31-72-183.hor.ic.ac.uk JOIN :#esoteric < 1203591317 0 :Corun!unknown@unknown.invalid QUIT :"This computer has gone to sleep" < 1203599102 0 :uvanta!n=uvanta__@116.45.53.15 JOIN :#esoteric < 1203599771 0 :wildhalcyon!n=chatzill@12.191.193.20 JOIN :#esoteric < 1203601662 0 :smg!n=stephan@88.198.164.131 JOIN :#esoteric < 1203601690 0 :smg!unknown@unknown.invalid PART #esoteric :? < 1203602070 0 :RedDak!n=dak@host12-80-dynamic.19-79-r.retail.telecomitalia.it JOIN :#esoteric < 1203604169 0 :uvanta_!n=uvanta__@116.45.53.15 JOIN :#esoteric < 1203605290 0 :uvanta!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1203605903 0 :puzzlet_!unknown@unknown.invalid QUIT :Remote closed the connection < 1203605907 0 :puzzlet!n=puzzlet@147.46.241.160 JOIN :#esoteric < 1203608101 0 :olsner!unknown@unknown.invalid QUIT :"Leaving" < 1203609744 0 :olsner!n=salparot@cust.fiber-lan.vnet.lk.85.194.50.194.stunet.se JOIN :#esoteric < 1203610733 0 :RedDak!unknown@unknown.invalid QUIT :Read error: 113 (No route to host) < 1203611041 0 :Tritonio_!unknown@unknown.invalid QUIT :"Bye..." < 1203611198 0 :Corun!n=Corun@halls-129-31-72-183.hor.ic.ac.uk JOIN :#esoteric < 1203611330 0 :RedDak!n=dak@host12-80-dynamic.19-79-r.retail.telecomitalia.it JOIN :#esoteric < 1203612627 0 :timotiis!n=timotiis@jfkew.plus.com JOIN :#esoteric < 1203613219 0 :puzzlet_!n=puzzlet@147.46.241.160 JOIN :#esoteric < 1203613240 0 :puzzlet!unknown@unknown.invalid QUIT :Remote closed the connection < 1203613979 0 :AlliedEnvy!unknown@unknown.invalid PART #esoteric :? < 1203614800 0 :Corun!unknown@unknown.invalid QUIT :"This computer has gone to sleep" < 1203615790 0 :olsner!unknown@unknown.invalid QUIT : < 1203615923 0 :RedDak!unknown@unknown.invalid QUIT :"I'm quitting... Bye all" < 1203616679 0 :ehird_!n=ehird@user-3e887a2d.tcl114.dsl.pol.co.uk JOIN :#esoteric < 1203616920 0 :RedDak!n=dak@79.2.89.240 JOIN :#esoteric < 1203617378 0 :ehird_!unknown@unknown.invalid NICK :ehird < 1203617400 0 :ehird!unknown@unknown.invalid TOPIC #esoteric :Is this the esoteric programming languages channel on freenode? < 1203617437 0 :faxathisia!unknown@unknown.invalid TOPIC #esoteric :This is NOT the esoteric programming languages channel on freenode? < 1203617881 0 :lament!unknown@unknown.invalid TOPIC #esoteric :This channel has no relationship to the world hub for esoteric language design and development. < 1203618078 0 :faxathisia!unknown@unknown.invalid TOPIC #esoteric :This channel has no relationship to the world hub for esoteric language design and development, the world hub for esoteric language design and development is not even mentioned in the topic. < 1203618100 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :nice one < 1203618607 0 :ehird!unknown@unknown.invalid TOPIC #esoteric :#esoteric powers esoteric languages? < 1203618610 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :homespring! < 1203618952 0 :RedDak!unknown@unknown.invalid QUIT :Remote closed the connection < 1203618979 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :Interesting question, < 1203618981 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :"Who knows the value for the type of a lisp source file?" < 1203619013 0 :wildhalcyon!unknown@unknown.invalid PRIVMSG #esoteric :No idea. < 1203619038 0 :wildhalcyon!unknown@unknown.invalid PRIVMSG #esoteric :My lisp experience is limited to "What's that language with all the parentheses? Lisp? Oh" < 1203619041 0 :lament!unknown@unknown.invalid TOPIC #esoteric :This channel is now officially closed. Please proceed to ##overflow. < 1203619049 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :aww < 1203619049 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric ::( < 1203619079 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :wildhalcyon: I'd really recommend changing improving that :o < 1203619091 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no < 1203619092 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :don't < 1203619095 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :learn haskell! < 1203619100 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :lisp is way too much fun to miss out < 1203619105 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1203619108 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but haskell is more fun < 1203619113 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and you can write lisp in haskell trivially if you want that < 1203619117 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the other way around, not so much < 1203619134 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :imo lisp is the prototype, haskell is the result (version 1 :-P) < 1203619137 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :ehird if you think so... maybe you can help fix my haskell code :P < 1203619146 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: i'll try. < 1203619148 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :ehird, but I find the reverse of hwat you said < 1203619162 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: what, you can write a haskell compiler in lisp trivially? < 1203619182 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lisp isn't a functional language for one < 1203619185 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :haskell is < 1203619200 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and haskell's syntax, while not as minimal as lisps, is just as simple and elegant < 1203619209 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and haskell has macros, because they're just functions, thanks to laziness < 1203619217 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :their syntax is low-fat too -- no (lambda ...) < 1203619248 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :oh I was not talking about compilers (I didn't think you were either) < 1203619252 0 :uvanta_!unknown@unknown.invalid PRIVMSG #esoteric :i totally agree with ehird < 1203619257 0 :uvanta_!unknown@unknown.invalid PRIVMSG #esoteric :haskell is way too cool < 1203619264 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1203619270 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's too cool! it must be banned! < 1203619306 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :ACTION does not care for the syntax comparison < 1203619356 0 :uvanta_!unknown@unknown.invalid PRIVMSG #esoteric :but in here S Korea, there's not much people being aware of haskell < 1203619367 0 :uvanta_!unknown@unknown.invalid PRIVMSG #esoteric :even no single haskell book written in Korean < 1203619368 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: syntax is fundamental to a language's style < 1203619391 0 :uvanta_!unknown@unknown.invalid NICK :uvanta < 1203619518 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :even better: < 1203619527 0 :lament!unknown@unknown.invalid TOPIC #esoteric :Sorry, this channel is full. Please proceed to ##overflow. < 1203619564 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :also, haskell rules, lisp drools! < 1203619573 0 :ehird!unknown@unknown.invalid TOPIC #esoteric :You've reached this channel because the channel you tried to enter has been configured with join throttling (+J). There may be a clonebot attack in progress there, or simply unusually heavy interest. Please leave this channel and try again. Your channel may also be "identified-only" (+r); join #please_register for more information. If you need help, message a freenode staffer or email staff@freenode.net .... Thanks! < 1203619584 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i win < 1203619628 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1203619702 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :I can't believe you guys are dissing lisp.. < 1203619710 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :academics!!! < 1203619735 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: i am not < 1203619739 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i am saying that haskell is superior < 1203619748 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :Well have fun with your lambda calculus and type theory while I write web apps! < 1203619770 0 :uvanta!unknown@unknown.invalid PRIVMSG #esoteric :lambda calculus is from lisp < 1203619785 0 :uvanta!unknown@unknown.invalid PRIVMSG #esoteric :i mean, miranda derived it from lisp < 1203619791 0 :uvanta!unknown@unknown.invalid PRIVMSG #esoteric :and haskell derived it from miranda < 1203619899 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :well it's kind of irrelevant but my opinion is if you don't know Lisp you are missing out on something really great < 1203619935 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: i'm writing a web app in haskell right now < 1203619950 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I was just being silly < 1203619954 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and text.xhtml + network.fastcgi + a strongly typed database query module is far superior to any lisp shit you have < 1203619955 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::p < 1203619962 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and i know lisp < 1203619980 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :specifically, i have memorized all the syntax, semantics and procedures in r5rs < 1203619981 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :ehird, It's not superior, It's what you're finding more fun to work with at this point in time < 1203619987 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and the equiv in common lisp < 1203619989 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :plus some more < 1203619993 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I was joking with all this arc fuss around at the present < 1203620010 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: well, actually, that toolkit is far superior to any lisp web app framework that has been built yet. < 1203620047 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the fact that it makes me *warm* and *fuzzy* is just a nice extra < 1203620054 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :I heard you can ensure W3C compliance of XML/XHTML in the type system < 1203620078 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :so.. currently, you gotta restart the server just to make upgrades to the site? < 1203620117 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :LANGUAGE WAR < 1203620125 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: no way < 1203620133 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :haskell development server < 1203620136 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :recompiles as it goes < 1203620150 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :when you're done, you just compile yourself a binary, static or dynamic, and upload it to your server < 1203620157 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :add the fastcgi info to your ws config and you're done < 1203620169 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and no reloads of the server < 1203620175 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just once you push out a new major change, restart the fcgi server < 1203620178 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :which is as simple as SIGHUP < 1203620193 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :ok so you have to restart the server.. < 1203620196 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and you can ensure w3c compliance in the type system; but that would make Text.XHtml be absolutely crazy < 1203620198 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: no < 1203620201 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if you want performance, yes < 1203620208 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :It's not superior to the lisp setup I had < 1203620209 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but you can just run a dynamically reloading WS on the server. < 1203620214 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1203620216 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :of course < 1203620230 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :99% of development time is PUSHING OUT MAJOR CHANGES ONTO YOUR SERVER WHICH TAKES 10 HOURS TO RESTART < 1203620254 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: have you thought about the performance overhead of your lisp setup? < 1203620257 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :Slereah, nah I use both languages < 1203620272 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i don't like lisp because it's ugly < 1203620292 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :especially functions ending in things like p and f < 1203620305 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :disgusting < 1203620306 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament: that's not there in scheme < 1203620310 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i know! < 1203620313 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but it does have mutation and predicate annotations.. < 1203620315 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :? and ! < 1203620316 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :which isn't ugly < 1203620319 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1203620322 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :scheme is much prettier < 1203620322 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :e.g. (number? x) < 1203620325 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(set! x y) < 1203620352 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :but scheme has terrible standartization problems < 1203620359 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :standardization < 1203620363 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :r6rs seems ... kind of ok < 1203620371 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :I think it's a bit too much of a superficial view < 1203620377 0 :wildhalcyon!unknown@unknown.invalid PRIVMSG #esoteric :Better than most esoteric languages. They usually have terrible bastardization problems < 1203620385 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :really the names of some constants is not the matter < 1203620409 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Don't be dissin' the eso dude. < 1203620432 0 :wildhalcyon!unknown@unknown.invalid PRIVMSG #esoteric :As a bastardized language creator, I'm not dissin', just telling it like it is. < 1203620435 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: aesthetics are important < 1203620446 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: actually the main reason i haven't ever seriously tried lisp is the perceived lack of a good environment, and a perceived necessity for having one < 1203620447 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Heh. < 1203620454 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :What's your esolangs? < 1203620462 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :lamet, SLIME < 1203620470 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: ie, haskell doesn't feel like you need to have a huge environment in which to work with it; a text editor and ghc is enough < 1203620474 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :but lisp does < 1203620482 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :and unfortunately such environments tend to be emacs-based < 1203620487 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament: but emacs, haskell-mode&inf-haskell, and ghc helps < 1203620487 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::-) < 1203620498 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :and i'm not a fan of emacs < 1203620502 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i am < 1203620541 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :beh < 1203620554 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :compare with squeak... now that's an environment :) < 1203620646 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :squeak is awesome < 1203620648 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well, kind of < 1203620652 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the idea is awesome < 1203620723 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :in any case, even if the environment did exists, something feels wrong about a language _needing_ one :) < 1203620738 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :feels just right for squeak though < 1203620768 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :there's barely a programming language in squeak < 1203620877 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :http://www.flownet.com/gat/papers/pch.html < 1203620970 0 :uvanta!unknown@unknown.invalid PRIVMSG #esoteric :bastardization! < 1203621207 0 :uvanta!unknown@unknown.invalid PRIVMSG #esoteric :haskell... its lazy evaluation is... elegant < 1203621227 0 :uvanta!unknown@unknown.invalid PRIVMSG #esoteric :its code is... beautiful < 1203621276 0 :uvanta!unknown@unknown.invalid PRIVMSG #esoteric :right now i'm doing a part-time job using php and it SUCKS < 1203621281 0 :uvanta!unknown@unknown.invalid PRIVMSG #esoteric :i miss haskell < 1203621332 0 :zacuan!i=oklofok@dsl-tkubras1-ff38c300-179.dhcp.inet.fi JOIN :#esoteric < 1203621345 0 :zacuan!unknown@unknown.invalid PART #esoteric :? < 1203621346 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :uur, php < 1203621452 0 :uvanta!unknown@unknown.invalid PRIVMSG #esoteric :i wanted to join that language war but i couldn't since ehird was saying everything i want to say before me < 1203621468 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hahah < 1203621469 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :I'm not sure it was a war.. < 1203621479 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :I like both languages < 1203621487 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :uvanta: unfortunately, if i actually said that before you said it, that would just be strange, because it makes no sense when i say it < 1203621529 0 :uvanta!unknown@unknown.invalid PRIVMSG #esoteric :what you say < 1203621566 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :uvanta: shit, the next line is 'all your base are belong to us' < 1203621568 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you can't make me say that < 1203621570 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's cruel < 1203621595 0 :uvanta!unknown@unknown.invalid PRIVMSG #esoteric :no, the next line is 'you have no chance to survive make your time' < 1203621601 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :is it? < 1203621602 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1203621605 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well < 1203621607 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you just did that. < 1203621643 0 :uvanta!unknown@unknown.invalid PRIVMSG #esoteric :i don't really understand what's going on but... i'm sorry < 1203622055 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :I think it was my fault :/ < 1203623337 0 :ehird!unknown@unknown.invalid QUIT :"Leaving" < 1203623448 0 :wildhalcyon!unknown@unknown.invalid PRIVMSG #esoteric :Anyone have any suggestions for what sort of commands an assembly language should contain? < 1203623476 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :One that will play the Super Mario theme on the PC speaker. < 1203623483 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :To answer your question, I don't know. < 1203623518 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :subleq ? < 1203623518 0 :ehird!n=ehird@user-3e887a2d.tcl114.dsl.pol.co.uk JOIN :#esoteric < 1203623522 0 :wildhalcyon!unknown@unknown.invalid PRIVMSG #esoteric :Okay < 1203623523 0 :wildhalcyon!unknown@unknown.invalid PRIVMSG #esoteric :bah < 1203623524 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :RSSB < 1203623534 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :crispy < 1203623536 0 :wildhalcyon!unknown@unknown.invalid PRIVMSG #esoteric :Not quite sure where to go with it < 1203623584 0 :wildhalcyon!unknown@unknown.invalid PRIVMSG #esoteric :I'm leaning towards 32-bit, but 64-bit might work also. < 1203623698 0 :wildhalcyon!unknown@unknown.invalid PRIVMSG #esoteric :I'll probably need some sort of memory management instructions. < 1203623704 0 :wildhalcyon!unknown@unknown.invalid PRIVMSG #esoteric :And all the usual stack instructions. < 1203624146 0 :ais523!n=ais523@chillingi.eee.bham.ac.uk JOIN :#esoteric < 1203624175 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :wildhalcyon: why not the MAX instruction? < 1203624178 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :see MiniMAX on the wiki < 1203624200 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :ais523 is watching you type < 1203624209 0 :wildhalcyon!unknown@unknown.invalid PRIVMSG #esoteric :makin' me look up stuff... with the thing... < 1203624217 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :actually, I was reading the logs and decided I wanted to join the conversation < 1203624227 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Heh. < 1203624247 0 :wildhalcyon!unknown@unknown.invalid PRIVMSG #esoteric :So, what would the MAX instruction do then? < 1203624252 0 :uvanta!unknown@unknown.invalid PRIVMSG #esoteric :how can you read them in real-time? < 1203624264 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and wildhalcyon: it can be expressed as MOVSW LODSW ADD SI,AX XCHG SI,DI in x86 assembly language < 1203624270 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: how long until you invent a log client that doesn't require an external log service and updates in real time without refreshing? < 1203624278 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then in another version add support for sending messages? < 1203624295 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :basically, it copies one datum from the source to the destination pointers (which have to be set up beforehand), incrementing each pointer < 1203624297 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(p.s., it's really weird when someone joins and replies to a question asked minutes before they joined :P) < 1203624316 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :then adds the datum at the source pointer to the source pointer, and increments it < 1203624321 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :then swaps the source and data pointers < 1203624334 0 :wildhalcyon!unknown@unknown.invalid PRIVMSG #esoteric :what's the benefit of doing that now? < 1203624340 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: minutes? I've replied to questions asked days earlier on occasion < 1203624347 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :wildhalcyon: the instruction is TC by itself < 1203624349 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's not as creepy < 1203624360 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it doesn't even need arguments... < 1203624362 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but replying something asked minutes before seconds after joining.. < 1203624365 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that is creepy < 1203624366 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1203624367 0 :wildhalcyon!unknown@unknown.invalid PRIVMSG #esoteric :Oh, well.. that's almost useful then < 1203624372 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :just memory to be set up correctly beforehand < 1203624377 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: hm, if it requires no arguments, then ... oh < 1203624378 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1203624388 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well, you can pass around minimax programs really easily < 1203624399 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :file = memory ... sentinel code ... < 1203624400 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :where < 1203624410 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :code = length of source encoded in base-255 < 1203624421 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :since MAX MAX MAX ... is just unary < 1203624422 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::-) < 1203624434 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I generally treat the program as being the contents of memory before the interp is run < 1203624444 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1203624450 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in DOS, you just append the program to the interp and it dutifully loads it into memory at the right place < 1203624483 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :there's a 14-byte interp on the wiki that works like that (no I/O, though) < 1203624529 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it even handles quitting when you jump to a location 270 bytes (that is, 135 words) before the start of the program < 1203624554 0 :wildhalcyon!unknown@unknown.invalid PRIVMSG #esoteric :Damn it, no wonder I'm confused. < 1203624580 0 :wildhalcyon!unknown@unknown.invalid PRIVMSG #esoteric :I thought you meant regular wikipedia... didn't pay attention where you said "on THE wiki"... < 1203624605 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I normally mean Esolang when I say 'wiki' on this channel without a qualifier < 1203624618 0 :wildhalcyon!unknown@unknown.invalid PRIVMSG #esoteric :I'm not blaming you. It was my error < 1203625184 0 :wildhalcyon!unknown@unknown.invalid PRIVMSG #esoteric :Wow, ais. I really don't understand miniMAX. < 1203625190 0 :wildhalcyon!unknown@unknown.invalid PRIVMSG #esoteric :I get Fractran, but not miniMAX < 1203625332 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's kind of hard to explain < 1203625342 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the example makes it just-about possible for other people to understand sometimes < 1203625378 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :each command alters the previous command, and sets the distance between the command after it and the command before it < 1203625407 0 :wildhalcyon!unknown@unknown.invalid PRIVMSG #esoteric :I sort of get that part, but I don't get how its set up I guess. < 1203625415 0 :wildhalcyon!unknown@unknown.invalid PRIVMSG #esoteric :Plus, its not really helpful for my assembly language. < 1203625446 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :wildhalcyon: the program is just loaded into memory, and the docs for the interp define where the 1st and 0th commands start < 1203625448 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so it isn't portable < 1203625458 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it was simply designed for very small TCness < 1203625466 0 :wildhalcyon!unknown@unknown.invalid PRIVMSG #esoteric :Fair enough < 1203625484 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(of course the 14-byte interp isn't TC because it can only address 64K memory, because it's a DOS .COM file) < 1203626070 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: I am trying to write a fixed-point function in C < 1203626073 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I do not believe it is possible < 1203626077 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :without inline asm < 1203626093 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :what exactly do you mean by 'fixed-point function' in this context? < 1203626100 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and why would inline asm help? < 1203626112 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :because you can do closures and stuff with inline asm < 1203626114 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :anyway, ais523 -- < 1203626132 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fix(F) => fun(...) => F(fix(F))(...) < 1203626196 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the naive implementation gives you an infinite loop because C is eager < 1203626211 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I remember reading something about an eager implementation of Y, though, I may have to look it up < 1203626221 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: c does not have closures < 1203626224 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you cannot code the y combinator in it < 1203626231 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :anyway < 1203626233 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :eager Y is Z: < 1203626251 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Z = \f. (\x. f (\y. x x y)) (\x. f (\y. x x y)) < 1203626269 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: the point is you cannot return the appropriate function < 1203626278 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that iz, < 1203626279 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oh, of course < 1203626280 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :in Z(f), < 1203626285 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :f cannot return something meaningful < 1203626331 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :lambda calculus is kind of tricky in C anyway, what with the total absence of a lambda operation < 1203626340 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: it's impossible. < 1203626343 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lambda calculus uses closures. < 1203626346 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :c does not have closures. < 1203626353 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :short of writing an interpreter; you cannot do lambda calculus in C. < 1203626437 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's what I meant by 'kind of tricky' < 1203626447 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in JavaScript, OTOH, it's built into the language < 1203626451 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and that acts kind of like C at a distance < 1203626505 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: speaking of which < 1203626515 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if you reduce haskell to: < 1203626523 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :a basic type system that at a glance looks like it, < 1203626530 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :simplified version of the syntax, < 1203626534 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just standard lazy evaluation < 1203626543 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and only a few standard things (like, an IO monad) < 1203626551 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: how short do you think an interpreter could be written? < 1203626574 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :not sure < 1203626586 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://www.laserpirate.com/tinyml.html tiny ml in <700 lines < 1203626589 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so, i think not too much < 1203626593 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :with a minimal Prelude, maybe a kilobyte or two < 1203626610 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm... 2K is the IOCCC size threshold < 1203626617 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(4K counting whitespace) < 1203626624 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but C is not a very good language for golfing < 1203626712 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :incidentally, I topped up anagolf to shinh's requested 5 problems at a time < 1203626723 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and got several entries within a couple of minutes of posting the problem < 1203626770 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: i meant < 1203626773 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :LOC < 1203626774 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mainly < 1203626783 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :bytes is more fun < 1203626787 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well < 1203626791 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bytes mean nothing to me < 1203626797 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'm pretty sure it's possible to write a Haskell interp in 1 line of code, in Brainfuck < 1203626866 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because newline has no meaning to a Brainfuck implementation, or ought not to < 1203626888 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(I came across a BF interp online that errored on any characters not in ,.<>[]+-, and also errored on EOF) < 1203626905 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(I'm pretty sure most BF standards would therefore not consider it conforming) < 1203626949 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: I mean reasonable looking code. < 1203626951 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::-| < 1203626963 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Hm. < 1203626976 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I'm trying to make a factorial on LB. < 1203626989 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :LB? < 1203626990 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :But I feel I'm recreating an imperative version of the factorial < 1203626995 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Lazy Bird. < 1203626999 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Lazy Bird, presumably < 1203627033 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: in Unlambda-like languages, the iterative and recursive versions of factorial tend to come out identical < 1203627061 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because when you translate the loop of the iterative version into a recursive function so that it can be expressed in the language, you end up with code identical to the recursive version < 1203627074 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :My idea so far is using an ordered pair, first element being the result, second being what's left. < 1203627078 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :at least if you make the loop count downwards to make the termination condition easy < 1203627082 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: btw, all factoring programs i've found say their algorithm is dumb < 1203627087 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so why don't they improve it?! :| < 1203627110 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :So factorial 5 would start out as <1,5> and finish on <120,0> < 1203627115 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Or something. < 1203627134 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: both the recursive and iterative versions work like that < 1203627139 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Oh. < 1203627142 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Thank goodness. < 1203627158 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in fact they're so similar it's hard to tell the difference; on occasion they can be identical < 1203627171 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because the argument to a recursive function is an argument < 1203627193 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :a variable in an imperative version has to be converted to an argument to be remembered between iterations of the loop < 1203627199 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and so the two functions end up the same < 1203627318 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: I just read your note about the difficulty of I/O in Lazy Bird < 1203627334 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :some sort of monad is generally the best option in pure lazy languages < 1203627335 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Are you going to tell me about monads? < 1203627375 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1203627381 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :a monad would be a bit hard to implement in an efficient form in Lazy Bird because input would need to return two arguments and output would need to take two arguments < 1203627405 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :taking two arguments is fine due to currying, but returning two would mean some sort of officially sanctioned version of an ordered pair < 1203627438 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Well, my first thought was to use some sort of function > such that ``>[A][B] converts to `[A][B] and then B is evaluated < 1203627466 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so some sort of eageriser < 1203627477 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Yes. Anti-d. < 1203627483 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but it's kind of hard to ensure that the eageriser runs at the right time, because it would itself be lazy < 1203627498 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and more importantly the thing running it would be lazy < 1203627503 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Is there a third choice? < 1203627505 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the program would have to be full of eagerisers < 1203627512 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: by the way, i learned a disturbing thing yesterday < 1203627518 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Yes, that's the problem I saw. < 1203627521 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the Y combinator cannot be typed in any language that does not allow arbitary recursive types < 1203627523 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and, with them, < 1203627531 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :every lambda calculus term can be typed as "a = a -> a" < 1203627538 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :thus, strong typing is destroyed < 1203627602 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :that's a bit exaggerated i think < 1203627633 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :just thinking about monads in general... suppose you write infinite cat (that doesn't terminate on EOF) in a language like Haskell < 1203627664 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm wait < 1203627690 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if you do it by constructing an infinite list of commands input >>= \x -> output x >> input >>= \x -> output x >> input and so on, is there any guarantee that any of the commands actually runs rather than the interp spending an infinite length of time constructing the list without evaluating any of the monad-chained functions? < 1203627699 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the list of commands, that is < 1203627709 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: no, it's true < 1203627715 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and that's from #haskell, too :P < 1203627725 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: um, yes < 1203627729 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :because ... that construction is lazy < 1203627730 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1203627743 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's an issue as to what is more lazy, the I/O or the list construction < 1203627743 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ehird: hm, there may have to be a type that every term can be type with < 1203627747 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the interpreter executes as little as possible of the chain creation, runs that action, does it again, etc < 1203627751 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: yes < 1203627753 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :think about it,. < 1203627767 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Let's call the lambda calculus function type T. < 1203627774 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :now every LC function takes an LC function and produces an LC function. < 1203627775 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :T = T -> T < 1203627792 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :a = a -> a < 1203627794 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the version of intersection types i read about that could type every weakly normalizing term used an omega for it. no other recursive types necessary < 1203627797 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(a = a -> a) is the type of all LC terms, and will type in a language that can type Y, thus strong typing is destroyed. < 1203627852 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :that type is not necessarily in your system < 1203627862 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: to type Y, it must be < 1203627869 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :because: < 1203627873 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Y :: (omega -> a) -> a was one legal type for Y, i think < 1203627893 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Y takes a function, and returns (let's say -- a) < 1203627907 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ehird: note that a system need not have principal types. it may be that you need a different type for Y dependent on what you apply it to < 1203627913 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Now, if we say that Y is equiv. to '\f -> f (Y f)', then, what type is passed to the function? < 1203627914 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :incidentally, is the topic a real error message that can actually come up, or was it just faked to look realistic? < 1203627921 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the return type of Y f, that's what. < 1203627931 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :And the function returns some value 'b' -- but this must be the same value passed to a < 1203627939 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :We get (a -> a) -> a, but that's just the fixed point type < 1203627947 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :If you read the actual lambda definition of Y, it has an infinite type. < 1203627959 0 :wildhalcyon!unknown@unknown.invalid QUIT :"ChatZilla 0.9.81 [Firefox 2.0.0.11/2007112718]" < 1203627960 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ehird: you are assuming a system in which everything has exactly one type < 1203627978 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i'm assuming a sane system? well, that's odd. < 1203627996 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ehird: there are _many_ interesting systems without that property < 1203628009 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: noticing when you've made assumptions and acting a different way is a good way to come up with an interesting esolang < 1203628030 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: random note -- you used to code ocaml right? < 1203628041 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :how can i tell the ocaml repl to load an ocaml source file and let me access its variables? < 1203628050 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ehird: a little bit < 1203628071 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :open ? my memory is vague < 1203628137 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :ACTION 's going to add > < 1203628146 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :At least it will be easy to insert in the interpreter. < 1203628178 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :interesting < 1203628179 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ehird: i think the repl syntax in ocaml is almost identical to file syntax < 1203628179 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ocaml -rectypes < 1203628180 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :- : ('a -> 'a) -> 'a = < 1203628183 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i see no recursive type there < 1203628184 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(for Y) < 1203628218 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :however, it doesn't actually run of course < 1203628274 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :another legal type for Y in that intersection system would be Y :: ((omega -> a) /\ (a -> b)) -> b < 1203628298 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and so on, for any chain of types starting with omega < 1203628304 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: hm, how do i explicitly type annotate an ocaml function? < 1203628313 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if i know that, then I'm going to go fsck up ocaml's type system < 1203628327 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ehird: with : somewhere < 1203628334 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :somewhere < 1203628334 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :great < 1203628343 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :possibly just before the = < 1203628373 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well, I just convinced ocaml that 'a -> 'a is a valid type for Y. < 1203628381 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :though < 1203628381 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :- : ('a -> 'a as 'a) -> 'a = < 1203628389 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i think i typed the argument < 1203628393 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1203628394 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :can't be < 1203628425 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :is that precedence right? try parenthese around ('a -> 'a) to be sure < 1203628430 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :*s < 1203628435 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :let y : ('a -> 'a) = < 1203628497 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ah i see < 1203628503 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"A as B" is "B = A" < 1203628507 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :# Y.sii;; < 1203628507 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :- : ('a -> 'b as 'a) -> 'b = < 1203628537 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but you can't put that in a source file heh < 1203628545 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1203628573 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: there should be a minihaskell for experimenting with stuff like this < 1203628577 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :like i asked ais523 about earlier < 1203628584 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it's not legal base syntax since basic ocaml does not allow -rectypes < 1203628584 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i guess without layout, so the parser can be dirt simple < 1203628590 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and stuff. < 1203628594 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: i did -rectypes < 1203628595 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hh < 1203628596 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*heh < 1203628602 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and, if we had a minihaskell < 1203628603 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i mean the basic is without it < 1203628607 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :we could just add the a = b rule < 1203628613 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :stop misinterpreting me! < 1203628640 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :y :: (a = a -> a) -> a < 1203628656 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :now wait < 1203628661 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :y = \f -> (\x -> f (x x)) (\x -> f (x x));; < 1203628671 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the usual type is (a -> a) -> a, for fix anyhow < 1203628704 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: yes, but this encodes it better < 1203628705 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it's just that you cannot get that building from just lambda terms with the usual type system < 1203628712 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that one kind of ignores the whole recursive 'a' thing < 1203628719 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh, wait < 1203628720 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you are right < 1203628721 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1203628721 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1203628734 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well, a nicer way of saying it (makes more sense to humans): < 1203628752 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :y :: (a -> b) -> b where a = b < 1203628787 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :churchN :: a = (a -> a) -> a -> a;; < 1203628788 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1203628789 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i think the amount of humans for which that makes more sense is a pretty thin sliver :D < 1203628797 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(as in, behaves the same as pure LC churches) < 1203628814 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: it avoids starting to read it as a normal type then having to backtrack to get the recursion < 1203628896 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :in System F (where everything terminates) forall a. (a -> a) -> a -> a is the type of _precisely_ the church numerals < 1203628928 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: aha, but that's not the LC church numerals < 1203628928 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :because there are more constraints on what can be passed in < 1203628930 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :System F btw does _not_ have principal types < 1203628955 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: anagolf should add emacs lisp < 1203628955 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :xD < 1203628971 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'd like to see Underload as well < 1203628978 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: egotist < 1203628978 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but I'm biased < 1203628978 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1203629034 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1203629037 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :can you do stdout with elisp < 1203629056 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :probably it would be better to do it the same way as they did vi < 1203629071 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :input arrives in the buffer, output is the final version of the buffer < 1203629111 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ACTION keeps typoing the word 'buffer' with g rather than f. It's probably because their finger doesn't move back far enough after pressing the 'b'... < 1203629128 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh, bugger. that must be bad. < 1203629142 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(badum-tish) < 1203629152 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is starting to get the impression from the topics that people here don't _want_ more channel members :D < 1203629153 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :luckily I've memorised backspace backspace f f as part of the way my fingers have learnt the word... < 1203629153 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: actually, hardly < 1203629161 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the emacs functions for buffer stuff are hideously verbose < 1203629178 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :elisp is hideously verbose as a language < 1203629180 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: quite :D < 1203629188 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and 'format' isn't that wordy < 1203629202 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: (require 'cl) makes elisp quite terse < 1203629220 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'm unaware of cl < 1203629262 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :cl=common lisp < 1203629266 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :every sane elisp coder uses it < 1203629269 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(if there are any,,) < 1203629278 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :basically, its a lot of useful stuff from CL < 1203629287 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and presumably anagolf would bundle it < 1203629306 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :since none of us is sane, why are you mentioning it? < 1203629313 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I have coded elisp before. I have never used the cl package, and I consider myself relatively sane, although some may disagree < 1203629322 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the fact that I'm in #esoteric is certainly evidence to the contrary < 1203629329 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: I meant 'sanity check' style :P < 1203629340 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: well, then start using it. it's the only way to avoid dying at the hands of elisp < 1203629340 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1203629362 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :nowadays I mostly only use elisp for writing major modes for esolangs < 1203629362 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ehird: maybe you mean coder of sane elisp, not sane coder of elisp? < 1203629372 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: yes, thank you < 1203629373 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1203629380 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: can i have esolangs.el, btw? :P < 1203629386 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :not on this computer < 1203629390 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :although I think I pasted it a while ago < 1203629392 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::< < 1203629422 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :http://pastebin.ca/894042 is the version I pasted, apparently < 1203629454 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :although I think that version has a bug in the BF indentation < 1203629473 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or at least, a strange-looking style choice where closing ] has to be on the same line as a lot of code to look sensible < 1203629498 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: btw, < 1203629504 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you should add (provide 'esolangs) < 1203629506 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :actually, that seems to be the version with the indentation corrected < 1203629507 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :for just importing the lot < 1203629508 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1203629515 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's actually probably the most recent version < 1203629519 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and that's a good idea < 1203629548 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I use a direct load of that file and (esolangs-recognize-extensions) in my .emacs < 1203629570 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: could you lowercase the brainfuck mode name? < 1203629572 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and then get annoyed when people insist on using .bf as an extension for Brainfuck files... < 1203629572 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :its purer < 1203629573 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1203629588 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :omg, you highlight ,. +- <> the asme < 1203629589 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::( < 1203629597 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the word "brainfuck" starts with a capital when at the start of a sentence < 1203629613 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :a modelien is not a sentence < 1203629625 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :modelines are generally written in title case < 1203629630 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that is, every word initcaps < 1203629634 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also, ais523, that does no indentation of brainfuck at all < 1203629635 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::( < 1203629637 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :after all, words like < 1203629648 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : (define-key brainfuck-mode-map "\r" 'esolangs-indent-newline-indent) < 1203629648 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : (define-key brainfuck-mode-map "\n" 'esolangs-indent-newline-indent) < 1203629650 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bad bad bad! < 1203629652 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: it ought to < 1203629652 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :don't do that. < 1203629654 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :override C-j. < 1203629656 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not \r\n < 1203629657 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I did < 1203629664 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not \r\n. < 1203629672 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :maybe I should have a minor mode that works on all of them that overrides \r and \n as well < 1203629677 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no < 1203629680 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :people do that in their own .emacs < 1203629684 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'm used to auto-indent, which I use in other modes < 1203629691 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: set it up in .emacs. < 1203629704 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also, try (kbd ...) for keyboard keys < 1203629707 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I don't use it in every mode though, I'm inconsistent < 1203629707 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :e.g. < 1203629709 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(kbd "RET") < 1203629709 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :point taken, though < 1203629711 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(kbd "C-j") < 1203629722 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: example of indenting using brainfuckmode? < 1203629766 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :just typing the code in ought to work < 1203629776 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :,[(C-j) < 1203629779 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :< < 1203629885 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : def[ < 1203629908 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I have 20.4.1 < 1203629915 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: it ignroes the first level of indentation < 1203629916 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it seems < 1203629925 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also < 1203629931 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :sometimes it disables RET! < 1203629935 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :'indentation would be in left margin' < 1203629936 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and just get "Symbol's definition as function is void: move-beginning-of-line" < 1203629943 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i did: < 1203629944 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[(RET) < 1203629945 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :] < 1203629948 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and now i can't do in those [] < 1203629951 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*go < 1203629961 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :definitely looks like there's an off-by-two error for you < 1203629967 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that code clearly needs cleaning up < 1203629967 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and maybe some logic bugs. < 1203629975 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :what about the Forte indentation? Does that work? < 1203629986 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: i don't know forte < 1203629988 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(it right-justifies the line numbers and left-justifies the statements) < 1203630002 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: just type in some BASIC, it looks much the same to a syntax higlighter < 1203630042 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :filext= < 1203630047 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :30 LET 9=7 < 1203630048 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :40 PRINT 6*9 < 1203630050 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that sort of thing < 1203630053 0 :jix!unknown@unknown.invalid QUIT :"CommandQ" < 1203630055 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :filext=.4te < 1203630073 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Start loop(ENTER) < 1203630080 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :->startloop indented one tab, current lien on one tab < 1203630094 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :there isn't a loop instruction < 1203630102 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1203630106 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i copied the examplenotanexample < 1203630106 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :xD < 1203630107 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it just indents the line number into a one-tab margin and the rest of the statement after it < 1203630126 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :100110 LET 110=110+3 < 1203630128 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :109 LET 100110=108 < 1203630129 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :110 PRINT "Looping...": LET 108=108+3 < 1203630137 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's how you do a loop in Forte < 1203630149 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: the 10 rem won't highlight properly < 1203630149 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :btw < 1203630169 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oh, because of the embedded colon-newline in the comment < 1203630181 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Emacs does that for other langs too, though, like // this is a C comment over 2 lines \ < 1203630187 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :this is also a C comment < 1203630201 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :doesn't highlight the second line < 1203630203 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1203630205 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :emacs sucks < 1203630206 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1203630221 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :out of all the syntax higlighters I've tried, Kate's seems to be best < 1203630226 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but Emacs has better indentation < 1203630284 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: the forte constants is: < 1203630289 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :map Integer -> Integer < 1203630295 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :default=[1=>1,2=>2,...] < 1203630296 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :right? < 1203630298 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1203630300 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and the key integers never morph < 1203630309 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :all integers can morph < 1203630320 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but generally it's a stupid idea to change the important ones like 1 < 1203630325 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: so wait, the keys '1' and '2' could morph in that default? < 1203630328 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so if i did < 1203630330 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :LET 1 = 2 < 1203630332 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it would become < 1203630337 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :default=[2=>2,2=>2,...]? < 1203630341 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i highly doubt it < 1203630342 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it would become < 1203630346 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :default=[1=>2,2=>2,...] < 1203630349 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oh, yes < 1203630353 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if you think about it like that < 1203630367 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it may be easier to think of it as map String -> Integer < 1203630376 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :default=["1"=>1,"2"=>2,...] < 1203630381 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1203630383 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :except that that is misleading < 1203630386 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :exactly < 1203630390 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because every pair of parens triggers an extra conversion < 1203630391 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :my parser will parse the numbers as Integer < 1203630404 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: does this work < 1203630405 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :as in: < 1203630405 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :LET (2+2) = 5 < 1203630431 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes, according to the spec < 1203630438 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or at least it would do if you remembered to give the line number < 1203630449 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: so I relaly need a map of expr->expr < 1203630455 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :because presumably '4' wouldn't result in '5' < 1203630458 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just 2+2 < 1203630462 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and what about (2+3)-1? < 1203630468 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :no: < 1203630473 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :10 LET 4=5 < 1203630477 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :20 PRINT (2+2) < 1203630479 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :will print 5 < 1203630484 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Okay, what about: < 1203630485 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so will (2+3)-1 < 1203630490 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :10 LET (2+2)=5 < 1203630494 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :20 PRINT ((2+3)-1) < 1203630503 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you get the answer 5 < 1203630511 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :an integer becomes completely unusable once it's been redefined < 1203630511 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: okay, so EVERY operation has indirection < 1203630513 0 :Sgeo[College]!i=897d294e@gateway/web/ajax/mibbit.com/x-f2c12e9a7f201616 JOIN :#esoteric < 1203630517 0 :Sgeo[College]!unknown@unknown.invalid PRIVMSG #esoteric :Hi all < 1203630539 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it becomes quite interesting because once an integer's been redefined, you can never use that integer's original value again < 1203630546 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: what is forte's (1/0) < 1203630548 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and can I do < 1203630551 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :LET (1/0) = 4 < 1203630554 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :PRINT (1/0) < 1203630570 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :1/0 isn't treated sensibly by the interp I came up with < 1203630574 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :probably it's just an error < 1203630587 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :although making it a constant that can be assigned to would probably be more interesting < 1203630596 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :maybe I should add 'nullity' too... < 1203630601 0 :Sgeo[College]!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1203630608 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: what would my example do < 1203630631 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :whatever dividing by 0 does in Perl < 1203630639 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :okay < 1203630640 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :probably die with an error < 1203630720 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's probably also worth pointing out that the reference interp tends to go into an infinite loop if there are any errors in the original program, because I don't check for them, and likewise the language will infinite loop if no explicit END statement is given < 1203630755 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :also worth mentioning that the line numbers are the only things that effect the order in which lines are run, and yes, they're indirected to < 1203630758 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :s/to$/too/ < 1203630806 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so you loop by redefining the numbers of earlier lines to have higher values so they're after the present line... < 1203630807 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :type Program = M.Map Integer Statement < 1203630810 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::P unsorted programs < 1203630868 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :INPUT. This works like LET, except that the redefinition of the number is taken from the input, not from an expression. The expression gives the number to redefine. < 1203630868 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :GET. This works like INPUT, except that it inputs a character and redefines the number given by the expression to its ASCII code. It inputs 256 on end-of-file. < 1203630877 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: so INPUT takes a decimal number? < 1203630881 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1203630892 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I believe it's completely unusable, sort of like gets in C < 1203630911 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because there's no restriction on what numbers the user can input < 1203630923 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :GET and atoi code are more useful in practice < 1203630931 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: if i 'LET 3 = 4', then get the input '3', is it redefined as '4'? < 1203630953 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :LET 3 = 4 < 1203630958 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :INPUT 5 < 1203630966 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :will set 5 to 4 if the user inputs '3' < 1203630973 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and I'd remembered to put line numbers in < 1203630987 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :there's no way to use an integer once it's been redefined... < 1203631012 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :okay < 1203631020 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: so even LET's lhs has the indirection? < 1203631029 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1203631138 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :putInt :: Integer -> Integer -> Forte () < 1203631139 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :putInt a b = update (\m -> M.alter (\_ -> b) a m) < 1203631141 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :tee hee < 1203631146 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: what about < 1203631149 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :LET 5 = 1 < 1203631154 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :LET 4 = 2 < 1203631156 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :err < 1203631156 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wait < 1203631157 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no < 1203631159 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :LET 5 = 1 < 1203631161 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :LET 1 = 2 < 1203631162 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :PRINT 5 < 1203631168 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you get 2 < 1203631176 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: so i need to iterate my finding < 1203631183 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1203631278 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :BTW, looking at the interp working can be quite interesting < 1203631295 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if you change all occurrences of 'next' to 'next and print' you'll be able to see what it's doing < 1203631338 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: welp i have getInt/putInt written < 1203631369 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: gosh, the main loop will be hard < 1203631370 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :xD < 1203632212 0 :ais523!unknown@unknown.invalid QUIT :"going home" < 1203632488 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Shit. For some reason, input doesn't work anymore. < 1203632499 0 :Sgeo[College]!unknown@unknown.invalid PRIVMSG #esoteric :Slereah Shit. For some reason, input doesn't work anymore. < 1203632508 0 :Sgeo[College]!unknown@unknown.invalid PRIVMSG #esoteric :You certainly said something successfully < 1203632525 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Yes, but not on the lazy bird! < 1203632557 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Hm. < 1203632567 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Ah. < 1203632568 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :UnboundLocalError: local variable 'c' referenced before assignment < 1203632602 0 :Sgeo[College]!unknown@unknown.invalid PRIVMSG #esoteric :lazy bird? < 1203632686 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo[College]: HMM LET'S THINJK < 1203632691 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :OH COULD IT BE AN ESOLANG?? < 1203632694 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :WEIRD IDEA. TOTALLY. < 1203632698 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::| < 1203632778 0 :Sgeo[College]!unknown@unknown.invalid PRIVMSG #esoteric :Bye al;l < 1203632852 0 :Sgeo[College]!unknown@unknown.invalid QUIT :"http://www.mibbit.com ajax IRC Client" < 1203632922 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Challenge: < 1203632931 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :write the shortest C program that interprets a turing complete language. < 1203632932 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Anything goes. < 1203632974 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :OISC? < 1203632993 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: Hardly; a brainfuck interp would be shorter. < 1203633000 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Orly? < 1203633016 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Well, a bitchanger would be even shorter :o < 1203633029 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :ACTION checks the wiki for something to try < 1203633050 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I never tried to make an OISC interpreter, but it doesn't seem bigger than BF to implement < 1203633070 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1203633074 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :remember GOTO++ < 1203633079 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :Abject oriented programming < 1203633124 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh btw -- doesn't have to be valid ansi < 1203633128 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it can be broken k&r if you want < 1203633130 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :as long as it compiles < 1203633166 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh; and it can be non-turing-complete due to e.g. integer/array limits < 1203633177 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :It would be hard otherwise! < 1203633182 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but if a platform had infinite arrays and ints; if the program was TC; then it's ok < 1203633186 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: well, no. realloc() < 1203633393 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mwahaha: < 1203633394 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :l(i){R i=getc()?i?getc()+l(i);} < 1203633402 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: are you that evil?! < 1203633420 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :er < 1203633422 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :s/second?/: < 1203633523 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :no :( < 1203633531 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :I don't even know what that does < 1203633541 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: well, its tweaked a bit now < 1203633543 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :current semantics: < 1203633548 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it reads a character < 1203633552 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if it's \0, < 1203633565 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then it reads one character, subtracts one from it, and adds it to (RECURSE) < 1203633566 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :otherwise, < 1203633571 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it returns the character minus one < 1203633593 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: basically, it lets me read in trivially as chars (i.e. no bounded buffers) but get anything that can fit into an int < 1203633595 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :for example: < 1203633604 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :00 02 00 02 02 < 1203633613 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :is (2-1)+(2-1)+(2-1) < 1203633615 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so, it's 3 < 1203633655 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the language is called 'onest' < 1203633657 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :a pun on 'forth' < 1203633724 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :language ext=.1st < 1203633836 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :er < 1203633838 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :s/getc/getchar < 1203633861 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :l(i){R i=getchar()?i-1:getchar()-1+l(i);}main(a){R l(a);} < 1203633866 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :current interp. < 1203633871 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :o_____o < 1203633876 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: it doesn't run anything yet. < 1203633877 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :of course. < 1203633881 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :I think I will be beater but trying anyway < 1203633889 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :% ./onest < 3.1st; echo $? < 1203633889 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :2 < 1203633892 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :talk about off-by-one errors.. < 1203634239 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: ok < 1203634245 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :take a look at my official reading routine :P < 1203634246 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :l(i){R(i=getchar())?i-1:getchar()-1+l(i);} < 1203634269 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(R is return) < 1203634275 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :let me expand that: < 1203634309 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :l(i){i = getchar(); if (i) { return (i-1); } else { i2 = getchar(); return (i2-1)+l(i); } } < 1203634311 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ehird: for your main loop: findMinWithKey . snd . split currentLineNo $ currentProgram < 1203634316 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: basically, the i perameter is ignored < 1203634330 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: it is just so we can assign to an integer variable (params default to int, remember?) without a declaration < 1203634338 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and we do l(i) to pass along an int to assign to, etc < 1203634340 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :er wait < 1203634344 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1203634346 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :main() calls l with argc, which is good enough, since it's ignored < 1203634348 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :sweet < 1203634355 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :*minViewWithKey < 1203634374 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :*fst . < 1203634378 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: and i believe main() will be recursive < 1203634390 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :I couldn't have main recursive :[ < 1203634395 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :why not < 1203634401 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :ACTION boots with main(g,v){l(g,1[(char**)v]);} instead < 1203634411 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that is pretty hardcore < 1203634412 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1203634417 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :because I want to iterate argv[0] < 1203634419 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but ... why are you casting? < 1203634424 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :opps I mean argv[1] < 1203634425 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's just a warning! < 1203634439 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :1[v] should work hunky dory, i think < 1203634448 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :that is: fmap fst (minViewWithKey . snd . split currentLineNo $ currentProgram). i think. < 1203634472 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :faxathisia: all my functions take an implicit integer parameter to assign to < 1203634472 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :XD < 1203634481 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :my execution function starts: e(i){i=l(i);... < 1203634482 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :main(int g,char**v){l(g,1[v]);} < 1203634482 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :main(g,v){l(g,1[(char**)v]);} < 1203634487 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :that's why < 1203634494 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :main(g,6 --- quit: timotiis ("leaving")