< 1167783165 0 :Asztal!unknown@unknown.invalid QUIT :Read error: 113 (No route to host) < 1167783185 0 :Asztal!n=asztal@host81-158-88-90.range81-158.btcentralplus.com JOIN :#esoteric < 1167783511 0 :jix__!unknown@unknown.invalid NICK :jix < 1167783875 0 :tgwizard!unknown@unknown.invalid QUIT :Remote closed the connection < 1167785946 0 :Asztal!unknown@unknown.invalid QUIT :Read error: 113 (No route to host) < 1167785985 0 :Asztal!n=asztal@host81-158-88-90.range81-158.btcentralplus.com JOIN :#esoteric < 1167787314 0 :digital_me!n=digital@wikipedia/Digitalme JOIN :#esoteric < 1167789624 0 :RodgerTheGreat_!unknown@unknown.invalid NICK :RodgerTheGreat < 1167789939 0 :Sandman!n=snabil-a@80.77.141.115 JOIN :#esoteric < 1167789988 0 :Sandman!unknown@unknown.invalid PRIVMSG #esoteric :Hello, world < 1167790012 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :Enter, Sandman < 1167790026 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :99 bottles of beer on the wall. < 1167790042 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Please write "Hello, world" _before_ I make this request. < 1167790043 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmmm... < 1167790057 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I should make a language based on coroutines. < 1167790067 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :and... somehow mix it into my genetic language idea. < 1167790071 0 :Sandman!unknown@unknown.invalid PRIVMSG #esoteric :Sandman entered < 1167790081 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :coroutine? < 1167790084 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Thank you. < 1167790087 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Yeah... < 1167790114 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :a subroutine takes input, executes, and returns an output to its caller. < 1167790138 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :... < 1167790173 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :a coroutine takes in input, executes, returns a value, halts execution, awaits more input, continues execution until it returns a new value, repeat. < 1167790187 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :a glorified generator. < 1167790196 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1167790228 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :you can use them to do psuedothreads nicely. < 1167790236 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :since they can halt their execution. < 1167790249 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :and take in more input when they continue. < 1167790287 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :You could actually use a coroutine to simulate an infinite list. < 1167790293 0 :Administrator!n=chatzill@c-66-56-27-97.hsd1.ga.comcast.net JOIN :#esoteric < 1167790302 0 :Administrator!unknown@unknown.invalid NICK :kilovh < 1167790313 0 :kilovh!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1167790332 0 :kilovh!unknown@unknown.invalid PRIVMSG #esoteric :Please, write the 99 bottles lyrics < 1167790336 0 :kilovh!unknown@unknown.invalid QUIT :Client Quit < 1167790352 0 :Sandman!unknown@unknown.invalid PRIVMSG #esoteric :99 nine bottles of beer on the wall < 1167790356 0 :Sandman!unknown@unknown.invalid PRIVMSG #esoteric :98 nine bottles of beer on the wall < 1167790360 0 :Sandman!unknown@unknown.invalid PRIVMSG #esoteric :97 nine bottles of beer on the wall < 1167790363 0 :Sandman!unknown@unknown.invalid PRIVMSG #esoteric :96 nine bottles of beer on the wall < 1167790378 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :a lazy evaluator like me won't do that if the programmer isn't looking < 1167790396 0 :Sandman!unknown@unknown.invalid PRIVMSG #esoteric :99...0 bottles of beer on the wall < 1167790437 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :0 bottles of beer on the wall, 0 bottles of beer, go to the store, pick up some more, 99 bottles of beer on the wall < 1167790449 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :i don't like beer < 1167790454 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :me neither < 1167790464 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :seems like just decrementing would be easier < 1167790470 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :so 99 bottles of beer on the wall... (2 hours later) still 99 bottles of beer on the wall < 1167790475 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1167790478 0 :Sandman!unknown@unknown.invalid PRIVMSG #esoteric :99 bottles of beer go to the store and pick upp 99 bottles, 99*99 bottles of beer on the wall < 1167790503 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :that's picking up way more than 99 bottles < 1167790560 0 :Sandman!unknown@unknown.invalid PRIVMSG #esoteric :oh sorry it should have been: 99 bottles of beer go to the store and pick upp 99 bottles each, 99*99 bottles of beer on the wall < 1167790614 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Sandman: Join #irp; we need programmers. < 1167790623 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :what I've always wondered about the song is: "why do they store all the beer on a *wall*? Wouldn't a box, refrigerator, or at least shelf prove a more efficient storage medium?" < 1167790716 0 :Sandman!unknown@unknown.invalid PRIVMSG #esoteric :Yeah me too...walls ive tried storing bottles of beer on the wall, and guess what? They fell to the floor < 1167790799 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :You could glue them to the wall, but it'd make it tricky to take them down again < 1167790827 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Cleverly arranged nails, perhaps. < 1167790837 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I imagine something like a workbench tool rack, with beer bottle-sized loops < 1167790860 0 :Sandman!unknown@unknown.invalid PRIVMSG #esoteric :I once heard something about some shelve thingy. dont really know what thats all about < 1167791592 0 :Asztal!unknown@unknown.invalid QUIT :Read error: 113 (No route to host) < 1167791824 0 :Sandman!unknown@unknown.invalid QUIT :"Merry christmas to ya all out there!" < 1167791996 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmmm... I kind of regret that = become the most popular way to assign variables. < 1167792017 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :why? < 1167792047 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :a<-b :DD < 1167792057 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :eeew < 1167792070 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :There is of course the broken BF version. < 1167792078 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :one of the most common confusions by new programmers is the distinction between variabe assignment and mathematical equality... most likely because = (the symbol for mathematic equality) is used for it... < 1167792093 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: The symbol used doesn't matter < 1167792095 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :and they look superficial similar at first glance (VERY first glance :D ) < 1167792101 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :it does when you're starting out. < 1167792105 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :not later. < 1167792110 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :0 bottles of bear on the wall, 0 bottles of beer. Take one down, pass it around, 255 bottles of beer on the wall! < 1167792112 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :once you know the symbol means nothing :P < 1167792115 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :If someone can't wrap their head around that, they aren't very smart < 1167792148 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :I myself do not really care how hard it is for newbies to start programming :\ < 1167792150 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Pretty much everyone makes the leap... I just wonder why it's nessicary to put the cliff there. :P < 1167792157 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION does. < 1167792168 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :C is a bitch... < 1167792177 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :to start out on. < 1167792183 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you can do a:=b < 1167792186 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :C is fun < 1167792196 0 :jix!unknown@unknown.invalid QUIT :"Bitte waehlen Sie eine Beerdigungnachricht" < 1167792197 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :if programming is a bitch... programming looks painful and boring. < 1167792202 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :if it's easy... it looks fun. < 1167792221 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :It -is- fun... but only if you know what you're doing. < 1167792227 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i use c++ almost exclusively < 1167792233 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: ewwww < 1167792236 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1167792241 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: As with anything < 1167792268 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :So I think it's best to start with something that's easy to learn... so programming starts out fun. < 1167792307 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :if it's easy to learn it's not going to be worth using < 1167792338 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Not true. ;) < 1167792350 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :If it's easy to learn... that means it's more intuitively worth using. < 1167792368 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :or... it could mean it's not worth using. < 1167792380 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but... let's be optimistic and go with the first option. < 1167792385 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1167792390 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :I started with basic, was a bitch changing to C++ since i couldn't understand the distinction between = and ==, i though "How can I know which kind of equality this is?". < 1167792479 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :yeah... things like that are bad.. < 1167792523 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :pssh < 1167792555 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :You should start from the top and work your way down... not stay at the top and keep the bottom hidden (ir works nicely for abstraction, but not for learning) < 1167792572 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION went Basic -> Javascript -> rm -rf basic -> Tcl -> shell -> C -> C++ -> way, way too many esolangs. < 1167792574 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :tho i was kinda small, didn't really understand what was happening there, prolly properly taught a basic programmer would've understood the difference even tho the same symbon is used :) < 1167792679 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wants to list too: Basic -> C++ -> python -> C++ -> Brainfuck -> Java -> C++ -> Haskell -> C++ < 1167792686 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Python -> Scheme -> Python -> C (for a second) -> esolangs yay < 1167792698 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :esolangs all the way < 1167792704 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I should really get to know a lot of other languages better... rather than just skimming over them. < 1167792718 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :shall we see... < 1167792727 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :C makes my stomach churn... so not going there. < 1167792749 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Perl and Lisp (definetely Lisp) look cool... < 1167792755 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Smalltalk? < 1167792813 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't know perl, lisp, pascal, cobol, intercal or smalltalk, i hate it when i know the name but not the language < 1167792815 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::\ < 1167792821 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I've gotten to the point where I can at least do a minor amount of fiddling around in the vast majority of languages (with the help of Google). < 1167792839 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I'm more familiar with Scheme than I am Lisp. < 1167792845 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but... they're not that different anyways. < 1167792848 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Scheme is a Lisp. < 1167792852 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :yeah. < 1167792859 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :By "lisp" I mean Common Lisp. < 1167792864 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Ah. < 1167792865 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Basic -> Turbo Pascal -> Modula -> LPC -> C -> Perl -> Ocaml -> Haskell and a bunch that i just read about < 1167792885 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :or used even less than the ones mentioned < 1167792888 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It's comparable to the difference between C and C++. < 1167792916 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I like that Scheme uses a single define function :D < 1167792985 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :LPC... hmmm... a language used to create MUDs... < 1167792996 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :sounds like something I would enjoy... but probably not. < 1167793000 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: it is usually not considered a disadvantage not to know cobol. :) < 1167793004 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is making a MUD in Python that uses freaky meta-programming stuff. < 1167793044 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Perl is a little weird... it has a lot of obvious disavantages, but I like the philosophy behind it. < 1167793057 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: The use of COBOL cripples the mind, therefore, it's teaching should be considered criminal. < 1167793081 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i wanna learn it :( < 1167793092 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Learn ORK. < 1167793099 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :You are supposed to change your nick to dijkstra when you say that :) < 1167793116 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Rather, < 1167793119 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :MNGGFOCOBOLGSO1GAORKGR < 1167793124 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: Yeah, yeah, yeah < 1167793152 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'll learn ork once i see a complete reference for it < 1167793157 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :or a tutorial < 1167793168 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Hit the Esolangs wiki. < 1167793183 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And realise that code is a bunch of English sentences. < 1167793217 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i thought there was just a few examples < 1167793227 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, i've seen ork code < 1167793248 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It's not that hard. . . < 1167793255 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :When the program starts: < 1167793260 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the wiki doesn't describe the builtin classes very well, i guess. < 1167793266 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :There is a scribe named Hi. < 1167793274 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Hi is to write "Hello, world!\n." < 1167793279 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :http://esoteric.voxelperfect.net/files/ork/doc/README < 1167793322 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i've made a lot of english based langs while planning on a project etc but never made an interpreter for any since they often grow quite complex < 1167793347 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :short jumbled-up-series-of-characters languages are starting to grow on me. < 1167793354 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :as are overly verbose ORK-ish languages. < 1167793368 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It's compiled into C++. < 1167793379 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Yeah. < 1167793392 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :So what? < 1167793481 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Just saying. < 1167793539 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric ::P Most languages go to assembly at some point... doesn't mean I'd enjoy coding in assembly very much. :P < 1167793572 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :I like assembly :) < 1167793589 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION has never actually seen assembly code before. < 1167793608 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I wonder what CPython looks like... < 1167793612 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION goes and checks. < 1167793635 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION doesn't do any assembly. . . < 1167793658 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Although I do tons of equally crazy stuff. ;) < 1167793693 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I can see where ORK sometimes looks like obvious syntatic sugar over C++... but it's strangely different in a way that I like. :D < 1167793725 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It's syntactic sugar over C++ and some libraries, in some ways. < 1167793764 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I don't consider syntatic sugar a bad thing though. < 1167793779 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Everything is just syntax sugar for some super low-level operation anyways. < 1167793865 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't like asciiWrite < 1167793866 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::\ < 1167793872 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: Why not? < 1167793876 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so poetic otherwise < 1167793923 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :yeah... I don't like readOne :D < 1167793933 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :why not just read one? < 1167793987 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :The whole function-names-blending-into-the-syntax is the coolest part.... so seeing readOne is just kind of annoying. :P < 1167793994 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah, ORK should try to avoid anything that looks like programming imo < 1167793998 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :actually < 1167793999 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Functions with a space in the name produce some vagueness in parsing. < 1167794005 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :exactly what CakeProphet said < 1167794017 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :ORK doesn't support multi-word function names :( < 1167794029 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :make it support :) then i love it < 1167794031 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Due to the parsing difficultimpossibility. < 1167794034 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :lisp does! < 1167794045 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :The problem is this: < 1167794050 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric : is to < 1167794064 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :If both functions and variables can have spaces, it's very difficult to parse. < 1167794071 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah, but you can avoid that if you know it < 1167794075 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1167794091 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you could demand an article between and . < 1167794092 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :In lisp symbol names can be anything < 1167794095 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And impossible if one has two function/variable combinations that match. < 1167794108 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: Yeah, but then it doesn't read well X_X < 1167794113 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: A-yup :( < 1167794117 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but the compiler could give an error if names can collide < 1167794119 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :It's the one corner of ORK that bugs me 8-X < 1167794128 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: And then what? There's still no solution ;P < 1167794134 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmmm... Python has a just-in-time compiler implementation... neato. < 1167794145 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :GregorR, why? < 1167794149 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it is a solution < 1167794152 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it can read well if the variables are nouns < 1167794198 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :common nouns i mean < 1167794211 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :it would still parse fine... < 1167794213 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if there are say 5 words in the bit that has and , it checks all possibilities (4 of them) and does the right one < 1167794242 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: But if there are conflicts, there would then be no way to right it. < 1167794254 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :an error < 1167794260 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :compile-time error < 1167794273 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if there are 2 that apply < 1167794286 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmmm... < 1167794301 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :now wait. proper nouns can be detected because they are capitalized. < 1167794330 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Perhaps a rewrite of the sentence's grammer? < 1167794345 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :so a variable would be either 'the' , 'a' or a capitalized proper noun. < 1167794362 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: That's a good point ... < 1167794381 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i mean, if a thing has functions "a b c" and "a b" and vars called "c d e" "d e", it would give an error, very easy to check for each class < 1167794382 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Doggie Samuels is to be or not to be that is the question when there is the functions "to be" "be or not" < 1167794415 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmmm... if it finds the variable first... it can clip off the variable name and know -exactly- what function to look for. < 1167794420 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but... < 1167794424 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: Giving an error isn't a solution, it just leaves the coder with no way to call that particular selection :P < 1167794427 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :there's something wrong with that. < 1167794453 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :GregorR, you still have the old way of naming if you MUST have colliding names < 1167794463 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :True *shrugs* < 1167794476 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and, it can support the ucase thing too < 1167794496 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :so in that example... the parse would find the variable "to be that is the question"... and could conclude that "to be or not" is the only function. < 1167794497 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if collision, check for uppercase and solve that way < 1167794516 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but... there could be ambigious -between- multiple functions and variables... which is where you would have problems. < 1167794562 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :as i said, then check if there are uppercase beginnings in words that indicate change of noun, if not, tell the programmer his names are colliding < 1167794577 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and please supply me with a better word that collision... < 1167794580 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1167794594 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :might be fine tho < 1167794594 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :yeah... the chance of colliding names is rare enough that it could simply complain to the programmer about it. < 1167794624 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :and then have OPTIONAL syntax to explicitly mark the beginning of the parameter... should a name collision occur. < 1167794634 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1167794653 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yep, just harder to make a compiler, but not much < 1167794666 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I would interpreter it myself... < 1167794672 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :er.. interpret < 1167794678 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'll do it if GregorR won't < 1167794686 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :THAT'LL show him < 1167794704 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :It's line-by-line statements that each do one thing... so it can't be that harder than a compiler. < 1167794741 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :it actually sounds easier than convert all of it to C. < 1167794746 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :(++) < 1167794818 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :both simple, i just meant the pattern-matching for the var- and cuntnames < 1167794821 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :-_________- < 1167794823 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :funcnames < 1167794827 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but yeah... the chance of there being a bunch of name overlaps that ORK couldn't possibly figure out is so rare that it can just be solved by optional syntax to split up the two. < 1167794829 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hahahahaha < 1167794834 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1167794867 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :or, it can be guaranteed to be lazy < 1167794888 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :yeah, de-ambiguity rules is the other route. < 1167794888 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i mean, shortest possible func for example < 1167794890 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and the rest as a var < 1167794902 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :stating what the interpreter will do during ambiguity... < 1167794904 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: I would, but since you volunteered, feel free :P < 1167794906 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I like the optional syntax route myself. < 1167794939 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :GregorR, depends on whether i go to sleep still < 1167794940 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :it would be the Perl way to go about it. :D < 1167794961 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :well no... hueristical evaluation is also in Perl's domain. < 1167795008 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :must the built-in classes be named like that? i mean, inputter is too programmingish imo, ork shouldn't sound like that < 1167795033 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :there could just e a single read/write class called scribe. < 1167795040 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :or typist... or any other nifty name you want. < 1167795057 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION writes an ORK interpreter for Python. < 1167795146 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :maybe with static typing removed :P < 1167795152 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but it kinda adds a nice touch to the syntax. < 1167795161 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :so I'll probably keep it. < 1167795210 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmm... what's the delimiter for statements... periods or newlines (or both?) < 1167795246 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Both, I believe. < 1167795290 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :aaand... # is comment I'm guessing? Like Python comments? < 1167795301 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :yeah. < 1167795332 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: inputter is a temporary name. . . Like, Gregor doesn't know of a better name for it. < 1167795339 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :oooh... I like the separation of function and class... < 1167795345 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :you can mix and match classes to functions. < 1167795407 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :oh wait... < 1167795423 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :no they're connected right? ...to prevent scoping ambiguity. < 1167795449 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Only newline is a delimiter. < 1167795450 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :# is a comment in ork? < 1167795452 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Periods are just fluff. < 1167795466 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :# is a comment, yes :P < 1167795471 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :(Perhaps this should be a comment) < 1167795483 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :yeah... I like that :D < 1167795491 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :you could use it for inline comments. < 1167795506 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Like asides to the actual program. < 1167795509 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :This is an object for expressing BigNums, but that is ignored. < 1167795517 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :^^^^ comment < 1167795533 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :() is good too < 1167795544 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :This is an object for expression BigNum, but nobody cares. (reference to an uncyclopedia inside joke) < 1167795556 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :thought about that too < 1167795569 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i mean < 1167795575 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :not that exact string of course :) < 1167795582 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :http://uncyclopedia.org/wiki/Nobody_cares < 1167795589 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I like () though. < 1167795644 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I think "backwards if" statements look a little more englishy. < 1167795683 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Bob is to eat a sandwhich, if my kitchen is not exploded. < 1167795709 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :I thought i heard someone here say today that they hated such statements. :) < 1167795734 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I use them quite a bit... since it's how Python does conditional expressions < 1167795751 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :x = (True if MyConditional() else False) < 1167795759 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :so I'm just used to them. :D < 1167795822 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric : When looper is to loop a number: < 1167795823 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric : There is a mathematician called Fibonacci. < 1167795823 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric : I have a number called current. < 1167795823 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric : Fibonacci's first operand is the number. < 1167795823 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric : Fibonacci's second operand is 1. < 1167795823 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric : Fibonacci is to subtract. < 1167795824 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric : current is Fibonacci's result. < 1167795826 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric : Fibonacci's first operand is Fibonacci's result. < 1167795828 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Looks like [set x [expr {1 ? [myConditional] : 0}]] < 1167795828 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric : Fibonacci's second operand is 0. < 1167795830 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric : Fibonacci is to compare. < 1167795832 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric : If Fibonacci says it's greater then I am to loop. < 1167795834 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :whoops < 1167795836 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :long paste :) < 1167795845 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Or: < 1167795854 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Err. < 1167795862 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, anyways, "I have a number called current." means int ¤t = number; ? because otherwise number wouldn't change < 1167795871 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That's [expr {[myConditional] ? 1 : 0]}] XD < 1167795907 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I think it means "number ¤t;". < 1167795915 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Err. < 1167795915 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::O < 1167795918 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :"number current;" < 1167795920 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't < 1167795927 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :eh < 1167795930 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :in c++? < 1167795931 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I don't like C's conditional expressions :P < 1167795939 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Nah, it's "double current;". < 1167795959 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(thought that Gregor had number as a seperate class, which he doesn't.) < 1167795963 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION needs to figure out all the possible statements in ORK to do a proper implementation of it. < 1167795965 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay, then this is an infinite loop, right? < 1167795982 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :we don't have to choose. we could make it alternating current. < 1167796009 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION implements a form of coroutine in his ORK :D < 1167796032 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :right? < 1167796035 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Right. < 1167796036 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :isn't it? < 1167796049 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :This would loop from the value you gave it down to 0. You would of course want to add some sort of < 1167796050 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :functionality there, too. < 1167796053 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so it's wrong? < 1167796143 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It's an infinite Fibo loop. < 1167796167 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Err. < 1167796169 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Never mind. < 1167796184 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I'm stupid. < 1167796907 0 :anonfunc!n=dholman@adsl-70-135-59-64.dsl.chi2ca.sbcglobal.net JOIN :#esoteric < 1167797468 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :GregorR, you'll prolly make it faster, i've only done some basic classes < 1167797490 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if you have the old code, i mean, it won't take long prolly :) < 1167797579 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :haha made a regexp parser last night and got to use it right away :) < 1167798005 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is just now definining the new number class for ORK numbers. < 1167798034 0 :oerjan!unknown@unknown.invalid QUIT :"Good night." < 1167798037 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :it would basically be a floating point with an overriden __str__ class... so it doesn't print the a trailing .0 like Python does. < 1167798360 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :hm. I just had a thought- can anyone think of a way to calculate the length of an optimal BF program that generates a constant, without actually creating he program? < 1167798539 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i've made the calculations i think < 1167798545 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'll check if i finished < 1167798680 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :the problem with creating a compiler to Def-BF is the absolute addresses- if you don't use a constant-generation command (?), you have to generate values in-place. This means that making constants changes code length, requiring a change in what the resulting values should be. The only way I can see to get around this would be making use of a lookup table as on the BF-constants page. < 1167798687 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :it's a really inelegant approach < 1167798713 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah, i've researched it a bit, but can't find the fucking file :( < 1167798768 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you can brute force the most optimal way to create a number quite easily < 1167798830 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :1 levels, takes: N < 1167798831 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :2 levels, takes: Abase+A+B+7, where N=Abase+B*A < 1167798831 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :3 levels, takes: Abase+Bbase+A+B+C+14, where N=Abase+(Bbase+C*B)*A < 1167798846 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :levels is the amount of memory slots you are willing to use < 1167798862 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :hm. interresting < 1167798881 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i've not come up with a clever algoritm to produce good bases for 3 levels, but you don't need it often < 1167798892 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm levels, good name :) < 1167798980 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if you use one memory slot for help, you the smallest possible "Abase+A+B+7" where a*b+abase = your number < 1167799039 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and constructed of course A times + [ > B times + < - ] > abase < 1167799053 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1167799081 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the amount of auxiliary symbols is (memory slots used)*7 < 1167799093 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if you want the result in your starting slot < 1167799108 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :what about programs of the form A+ [>B+<-]>C+/- ? < 1167799125 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :abase can be negative < 1167799133 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :actually < 1167799143 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :abs(Abase)+A+B+7 < 1167799146 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :like that < 1167799192 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :ah- I see < 1167799195 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but, seems i didn't make it thro to the end < 1167799196 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :sorry < 1167799203 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't have an algorithm :) < 1167799324 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm take the squareroot of the number and make a and b that, or if not an integer, asqrt < 1167799342 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :abase will be balance it out < 1167799352 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that is the best algorithm i think, actually < 1167799413 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :with three levels, taking the cuberoot and brute forcing different values for abase and bbase while changing a, b and c near the cuberoot might do the trick < 1167799538 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1167799547 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :for numbers smaller than 256 you don't get much profit from 3 levels < 1167799556 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :well, that's a lot of help < 1167799563 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hopefully < 1167799570 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :in most cases, we'll be dealing with relatively large numbers < 1167799581 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay < 1167799588 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you can take the easy way out of course < 1167799591 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :the Def-BF standard pretty much requires 32-bit cells < 1167799598 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :which is? < 1167799598 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :just split the numbers in 4 pieces < 1167799609 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :with num>>8 < 1167799621 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1167799624 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :octet by octet < 1167799637 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :then just merge them by multiplying with 256 < 1167799638 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :actually < 1167799648 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :much worse < 1167799655 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :yeah- then it just becomes a problem of generating the components, which could feasibly be done via lookup... < 1167799659 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :since the 256 takes 36 symbols again < 1167799686 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :+++>>++++++[-<++++++>]<[-<+++++++>]< is the smallest 256 i think < 1167799755 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it has abase=3, bbase=0, c=6, b=6, a=7 3+(0+6*6)*7 < 1167799772 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :3+(0+6*6)*7 was just to help me think < 1167799774 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1167799779 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :the smallest non-wrapping level 3 is one of four variants that are 32 commands < 1167799804 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :wait, three variants < 1167799831 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :huh? < 1167799843 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :one of what variants? < 1167799850 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :>>++++++++[-<[-<++>]<+[->+<]>>]< (32, 3) non-wrapping < 1167799850 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :>+>+++++++[-<[-<++>]<+[->+<]>>]< (32, 3) non-wrapping < 1167799851 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :>>++++[-<[-<++++>]<+++[->+<]>>]< (32, 3) non-wrapping < 1167799857 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1167799862 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i forgot to mention that < 1167799895 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :all that matters about the small differences in the final length is where you end < 1167799925 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :otherwise you have many strategies to position abase, bbase etc < 1167799944 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :luckily, Def-BF makes memory use in programs a little less vital than most BF-derivatives, so we don't have to do something messy like hard-allocate 3 cells per constant < 1167800026 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you do realize that even if using 4 levels allows a 32-bit number to be expressed in <60 symbols, it still takes 2^32 cycles to create? :) < 1167800110 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1167800157 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :we're assuming for now that either the machine is fast enough for anything we want or that the BF-ASM compiler is infinitely deep in it's analysis and optimization of code < 1167800200 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :++++[>++++<-]>[>++<-]> (32, 2) < 1167800226 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i have all loops separate in the system < 1167800279 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'll do the complete algorithm to find the optimal way for that someday unless i see it somewhere else < 1167800286 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'll continue the ork now < 1167800321 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :176 "smth had to be truncated to 256 characters for debug information" warnings < 1167800327 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so far so good :D < 1167800383 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1167800516 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :can i see an ork program to check the final syntax? :D < 1167800586 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if there are accidental infinite loops in a tutorial, i'd like to check i working program to be sure < 1167800595 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*a working < 1167800656 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :sleep retry -> < 1167800708 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :http://esoteric.voxelperfect.net/files/ork/src/orkfuck.ork < 1167800766 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Woooh, ORKFuck! < 1167800797 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :GregorR, hmmm... do you have some sort of docs on the exact specs of ORK? < 1167800805 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Ha! It is to laugh! < 1167800817 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I'm too lazy to crack open the source and read it with my shoddy C++ literacy. < 1167800837 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I do, but the site it's all on is apparently down >_> < 1167800863 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :There is such a thing as a brainfuck interpreter. < 1167800865 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :A brainfuck interpreter can instanciate. < 1167800865 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :A brainfuck interpreter can subinstanciateData a number. < 1167800865 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :A brainfuck interpreter can subinstanciateProgram a number. < 1167800883 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :put the "There is... " line beneath the others? < 1167800919 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and, could i declare "A brainfuck interpreter can instanciate." in say, the main < 1167800936 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :No and no. < 1167800937 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :'night, everyone. I should be on again late tomorrow. < 1167800941 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm making an interpreter now, tho it's a trivial conversion if needed < 1167800945 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :good < 1167800957 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Bye RodgerTheGreat < 1167800967 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Bye < 1167800979 0 :RodgerTheGreat!unknown@unknown.invalid QUIT : < 1167801016 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :godfuck... who wrote the bfork? < 1167801043 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :orkfuck i mean < 1167801056 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :<-- < 1167801132 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :haha you're sick < 1167801147 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :or did you just do an evil conversion? < 1167801323 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I wrote it from the top. < 1167801330 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I don't recall anything about it *shrugs* < 1167801418 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmm... the comments in the source should be enough to get all the possible syntax. < 1167801427 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :unless you randomly don't-comment-certain-parts < 1167801433 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :my C-reading skills are lacking. < 1167802560 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: Allow me to give you a much shorter version of 255. < 1167802566 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :- (1, 1) wrapping < 1167802681 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :true, i meant non-wrapping since i assumed bignum < 1167802730 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is generally used to having wrapping, since chars, well, wrap. < 1167802741 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and secondly, i'm lying, i recalled wrapping much after i'd said said my thing < 1167802756 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :HEheh. < 1167802953 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmmm... are function definitions independent of class declarations? < 1167802964 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :in ork? < 1167802966 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :or are they "within" the last defined function. < 1167802968 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :yeah. < 1167802975 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :er... last defined class < 1167802985 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :See the C++ code. ;) < 1167803005 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :they are in the class that is mentioned in the "When a ... is to ..." < 1167803009 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the first ... < 1167803022 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ooooh. < 1167803026 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :duh :P < 1167803049 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, See makes my eyes hurt when I try to understand it. < 1167803060 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but the comments are useful. < 1167803583 0 :digital_me!unknown@unknown.invalid QUIT :Read error: 54 (Connection reset by peer) < 1167805680 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :GregorR, haha... you could introduce metaclasses into ORK < 1167805693 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :"thing" being the default metaclass :D < 1167805697 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1167805706 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :There is such a as a < 1167805727 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :+ < 1167805729 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :There is such a mammal as a dog. < 1167805745 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Wheee. . . < 1167805753 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :There is such a thing as a , which is a type of < 1167805771 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I prefer Cake's idea. . . < 1167805780 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :But whatever. < 1167805780 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Yeah :D < 1167805843 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :There is such a thing as a thing < 1167805847 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :O.o < 1167805861 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :No clue how metaclasses would work in ORK though. < 1167805898 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION sometimes wishes there was a simpler version of regex that used that kind of syntax < 1167805909 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :This is a that likes to < 1167805926 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :... I could... make it? < 1167805933 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1167805945 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION makes it. < 1167806278 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :ACTION groans. < 1167806283 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Ugggh. Metaclasses. < 1167806367 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :The future of OOP: An abstract framework of abstract metaclasses. < 1167806698 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1167806703 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :metaclasses are magical :P < 1167806712 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :How are they magical? < 1167806717 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Dunno... < 1167806722 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :they're not very useful for most things. < 1167806735 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :That about sums up all of theoretical OOP. < 1167806736 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :only a few specific things that need a little funky class-based magic. < 1167806752 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :OOP can at times be redundent... and it's a little weird. < 1167806764 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :but it makes things weirdly effective. < 1167806863 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: The future of OOP: < 1167806884 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :There is an object which does everything I want. < 1167806938 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The stdlib always has every object that does everything you want. < 1167806950 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :factory functions that produce classes are strangely powerful.... < 1167806961 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And it's an abstraction ontop of 500 different layers. . . ;) < 1167806982 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :you can box a few generalized patterns about certain class designs into a single word. < 1167807164 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :You remind me of the wackiest abstraction I made/used. < 1167807214 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yes? < 1167807249 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(that abstraction is?) < 1167807290 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :I wanted to generalize binary classes in a user-made package that had the same named slots but different names under one generic class so I could save myself the typing, so I made an alist with the keys as the symbols for the generic class names and what was assoc'd with the key was an anonymous function produced by a macro for the metaclass definition. This function then defined a new class according to another macro, and generated an < 1167807290 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :instance of it if desired. < 1167807594 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That's almost like writing an OS to implement dc. < 1167807805 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :I wanted to save 40 lines of typing. < 1167807893 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :I did -- I did the thing in like 10 lines. < 1167807988 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Still. < 1167808008 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :What? I saved my hand from OCD. < 1167808010 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Errr... < 1167808012 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :RSI. < 1167808019 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :;D < 1167808048 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Ah the power of Lisp. < 1167808641 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmmm... < 1167808643 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :not surprisingly. < 1167808650 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :when you use regex to substitute things into regex. < 1167808652 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :problems arise. < 1167808683 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :I can't think why if you use your macros correctly. < 1167808692 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Oh wait -- this is Python. < 1167808702 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Yah. < 1167808711 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :ACTION pities the stringent syntax. < 1167808726 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :eh... I must be used to it. < 1167808731 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I find it very "lazy". < 1167808745 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Haskell is lazier :P < 1167808748 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :No semicolons and braces and all that jazz. < 1167808768 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :C looks gawd-awful to type... but I guess you'd get used to all the symbols after a while. < 1167808782 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :It's easy to parse. < 1167808791 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Plus, it makes for fun formatting tricks. < 1167808811 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :I, personally, abhor overreliance on whitespace. < 1167808832 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :meh... small rewards for the task of typing all that crap out. < 1167808844 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Typing what out? < 1167808847 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :A semicolon? < 1167808857 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :semicolons and braces... not to mention it looks ugly. < 1167808867 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :A few hundred semicolons. < 1167808887 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :What if you were working on a very small resolution display, and indendation would look horrible? < 1167808910 0 :MM2!n=moversti@edu.haapavesi.fi JOIN :#esoteric < 1167808916 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...I haven't thought about it much. < 1167808922 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1167808933 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Good argument though.. :P :P :P < 1167808965 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Also, think about using regexps to go through Python code and change stuff around -- annoying. < 1167809002 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :It's like saying "You'd care more about how slow Python is if you were on a 1980s IBM" < 1167809035 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :More like "You'd care more about how slow Python is if you did anything system critical." < 1167809071 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I remember some implementation of Python written in Python, with the very ambitious goal of becoming faster than C. :P < 1167809086 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Don't think it'll happen anytime soon. < 1167809090 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :There's Jython, and that's scary. < 1167809096 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :PyPy < 1167809116 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Python being compiled by Java. Whoo. < 1167809124 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Yeah... < 1167809162 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I've never encounted any slowness with Python so far... but I haven't really worried about it < 1167809216 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Python is slow on my box. < 1167809220 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :At times. < 1167809227 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :My box is on the older side, so. < 1167809265 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Take a look at the Computer Language Shootout results. < 1167809977 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION doesn't trust benchmarks. < 1167811199 0 :clog!unknown@unknown.invalid QUIT :ended < 1167811200 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1167816374 0 :anonfunc!unknown@unknown.invalid QUIT : < 1167817932 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :whjoooo < 1167819958 0 :xpika!n=hawk_ala@203-37-151-154.dialup.dodo.com.au JOIN :#esoteric < 1167819979 0 :xpika!unknown@unknown.invalid PART #esoteric :? < 1167825228 0 :tgwizard!n=tgwizard@c-9b3ee155.178-1-64736c10.cust.bredbandsbolaget.se JOIN :#esoteric < 1167830370 0 :tgwizard!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1167832119 0 :MM2!unknown@unknown.invalid PRIVMSG #esoteric :please tell me 8 first fibonacci numbers < 1167834459 0 :tgwizard!n=tgwizard@c-9b3ee155.178-1-64736c10.cust.bredbandsbolaget.se JOIN :#esoteric < 1167836489 0 :jix!n=jix@L63dc.l.strato-dslnet.de JOIN :#esoteric < 1167836661 0 :Asztal!n=asztal@host81-158-88-90.range81-158.btcentralplus.com JOIN :#esoteric < 1167836849 0 :Asztal!unknown@unknown.invalid QUIT :Client Quit < 1167837690 0 :oklopol!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1167838882 0 :oklopol!i=okokokok@dsl-tkubrasgw1-fe30fa00-77.dhcp.inet.fi JOIN :#esoteric < 1167840696 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1167841961 0 :CakeProphet!unknown@unknown.invalid QUIT :"haaaaaaaaaa" < 1167843336 0 :digital_me!n=digital@wikipedia/Digitalme JOIN :#esoteric < 1167844506 0 :CakeProphet!n=CakeProp@h152.243.213.151.ip.alltel.net JOIN :#esoteric < 1167844915 0 :CakeProphet!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1167845749 0 :digital_me!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1167846060 0 :digital_me!n=digital@wikipedia/Digitalme JOIN :#esoteric < 1167847020 0 :digital_me_!n=digital@wikipedia/Digitalme JOIN :#esoteric < 1167847450 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ACTION goes ooh: http://www.coolopticalillusions.com/optical_illusions_pictures_3/candy_stripes.htm < 1167847565 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :cool < 1167847620 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :There seems to be a battle going on in the high-tech language world. < 1167847657 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :On one side, there is Lisp, with its ability to perform arbitrary transformations on program source code. < 1167847690 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :On another side, there is Haskell, with its power of manipulating actual programs and computations. < 1167847715 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is at the moment programming Brainfuck in Haskell < 1167847720 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :On a third side, there are the OO languages with high-powered reflection. < 1167847739 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: define "programming Brainfuck in Haskell" < 1167847746 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :making an interpreter < 1167847758 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :On the fourth side, there are low-level languages saying "we can do it, too!" < 1167847768 0 :digital_me!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1167847810 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :I wanted to make a brainfuck interpreter that is completely customizable as to tape size, cell value sizes and wrapping. < 1167847828 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :LOOKIT ME I ARE USING THE VISITX0rZ-PATTEN LOLZ < 1167847837 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: ooh < 1167847851 0 :digital_me!n=digital@wikipedia/Digitalme JOIN :#esoteric < 1167847879 0 :digital_me!unknown@unknown.invalid PRIVMSG #esoteric :ACTION goes oooh too < 1167847917 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :at my URL, not what oerjan said I hope < 1167847926 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :unless you forgot to turn your ESP off again < 1167847929 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :XP < 1167847987 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Is bad for you. < 1167848001 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is reading _Thud_ by PTerry. Very good book, especially page 290. < 1167848345 0 :digital_me!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: yes, lol < 1167848924 0 :digital_me_!unknown@unknown.invalid QUIT :Connection timed out < 1167849659 0 :sebbu!n=sebbu@ADijon-152-1-49-123.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1167849707 0 :CakeProphet!n=CakeProp@h152.243.213.151.ip.alltel.net JOIN :#esoteric < 1167850778 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: hi < 1167851235 0 :oerjan!unknown@unknown.invalid QUIT :"leaving" < 1167851781 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :mskeg < 1167851782 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Hey. < 1167851920 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wonders what MS Keg would be if it existed. < 1167852042 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :hmmm < 1167854862 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ACTION has dinner < 1167855792 0 :RodgerTheGreat!n=Rodger@c-68-42-107-2.hsd1.mi.comcast.net JOIN :#esoteric < 1167855809 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :howdy < 1167857729 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :aah < 1167857778 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is toying with new ideas on how to turn common parts of programming languages into unconvential data types. < 1167857799 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Everything should be data... if it isn't, you can't manipulate it to its full potential. < 1167857885 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :So thinks like variable names, call stacks, evaluation stack, parse trees, and language syntax should all be expressable by data of some sort. < 1167857988 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :So... for example... < 1167858021 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :x = syntax("(") < 1167858028 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :y = syntax(")") < 1167858043 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :2root = sqrty x 2 y < 1167858048 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :should yield the square root of two. < 1167858120 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :a weird example... but I'm sure with some tweaking to how it works you could make some interesting applications with it. < 1167858178 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :That would requite some interesting runtime parsing mechanics. :P < 1167858208 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Better yet... you could do it like Lisp with the quote operator. < 1167858232 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :and have the quote operator represent a "suspended" sytax... that isn't evaluated till later. < 1167858565 0 :Keymaker!n=nobody@xdsl-237-87.nebulazone.fi JOIN :#esoteric < 1167858593 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :hello. 99 bottles of beer in underload: http://koti.mbnet.fi/~yiap/programs/underload/99.ul < 1167858614 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :finally got around finishing this one. i'm happy about it, as it's my first program in this kind of language < 1167858632 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :first that does something logic, that is < 1167858652 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :my two others in underload are a quine and something that prints natural numbers in unary < 1167858663 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ACTION returns himself. < 1167858698 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: yuk < 1167858717 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :Thou shalt not fuck around with the parser at runtime. < 1167858736 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :Keymaker: cool < 1167858741 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :thanks < 1167858829 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wonders where Underload is defined < 1167858851 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :http://esoteric.voxelperfect.net/wiki/Underload < 1167858857 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :ACTION slaps SimonRC  < 1167858876 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :this is why we can't have nice things < 1167859072 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1167859076 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :nice < 1167859087 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC, Why not :( < 1167859107 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :You could assign expressions to any generic set of symbols... < 1167859126 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :'[ := '( < 1167859132 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Hello["World") < 1167859155 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :I feel that changing suck things at runtime would make the language a little slow. < 1167859192 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :Not if you do it right < 1167859200 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :In fact, you are almost screwing with the lexer at run-time. < 1167859219 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :If the language is designed for it's purposes... rather than implementing it as a bolt-on later in life... it'll be more well-suited for it. < 1167859231 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :plus you would end up leaving large holes all over your language spec. < 1167859275 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...it's an esolang idea... it's supposed to be weird. :P < 1167859279 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :Lisp only gets away with it because it restricts lexer-around-with-screwing to read-time. < 1167859305 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :You know about the lifecycle of Lisp source code, right/ < 1167859306 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :? < 1167859310 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :No. < 1167859335 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :the compiler reads a series of "forms" from each input file. < 1167859343 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :that s called read time < 1167859371 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :any of those forms may change the lexer. < 1167859376 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :termination.. < 1167859379 0 :Keymaker!unknown@unknown.invalid QUIT : < 1167859396 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ah, they may only change the lexer for following forms < 1167859447 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :The if the lexer holds a series of states... and plugs in the proper values from these malleable state values... it would be trivial to have a lexer that can change how it parses mid-runtime. < 1167859456 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :once the forms are read it, there is compile time, which IIRC starts with macro-expansion, which allows you to pass parts of parse trees (s-expressions) through arbitrary functions, which it handy. < 1167859468 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :it would most likely be an interpreted language though. < 1167859477 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :CakeProphet: yeah, but that reduces your ability to optimise < 1167859498 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :it prevents such fundamental optimisations as, say, *compiling* the program. < 1167859503 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :...no use optimizing a interpreter/compiler that doesn't exist yet. < 1167859562 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :I don't care about speed. < 1167860637 0 :RodgerTheGreat_!n=Rodger@c-68-42-107-2.hsd1.mi.comcast.net JOIN :#esoteric < 1167860640 0 :RodgerTheGreat!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1167860653 0 :RodgerTheGreat_!unknown@unknown.invalid NICK :RodgerTheGreat < 1167861415 0 :RodgerTheGreat_!n=Rodger@c-68-42-107-2.hsd1.mi.comcast.net JOIN :#esoteric < 1167861431 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :motherfucking wifi < 1167861605 0 :ihope_!n=ihope@c-71-205-100-59.hsd1.mi.comcast.net JOIN :#esoteric < 1167861615 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Any idea how much bandwidth the esowiki uses? < 1167861762 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1167861877 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ONE MILLION MEGABITS < 1167861904 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ooh < 1167861940 0 :RodgerTheGreat_!unknown@unknown.invalid PRIVMSG #esoteric :make that ONE BILLION and you have yourself a deal < 1167861942 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Per day? < 1167861958 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ihope_: No, per seconds < 1167861959 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :ONE BILLION per day? < 1167861963 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Oh. < 1167861971 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Per how many seconds? :-P < 1167861972 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :s/second/mu second/ < 1167861985 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Still plural. < 1167861993 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :s/seconds/mu second/ < 1167862148 0 :RodgerTheGreat!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1167862348 0 :RodgerTheGreat_!unknown@unknown.invalid QUIT :Remote closed the connection < 1167862367 0 :RodgerTheGreat!n=Rodger@c-68-42-107-2.hsd1.mi.comcast.net JOIN :#esoteric < 1167862507 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :http://youtube.com/watch?v=WwylBRucU7w&mode=related&search <- lol < 1167862701 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :LOL 2 U < 1167862987 0 :CakeProphet!unknown@unknown.invalid PRIVMSG #esoteric :jajajaja < 1167863473 0 :ihope_!unknown@unknown.invalid PRIVMSG #esoteric :Is that that blender thing? < 1167864060 0 :digital_me!unknown@unknown.invalid QUIT :"Lost terminal" < 1167864689 0 :RodgerTheGreat_!n=Rodger@c-68-42-107-2.hsd1.mi.comcast.net JOIN :#esoteric < 1167864706 0 :RodgerTheGreat_!unknown@unknown.invalid QUIT :Remote closed the connection < 1167864746 0 :RodgerTheGreat!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1167864746 0 :RodgerTheGreat_!n=Rodger@c-68-42-107-2.hsd1.mi.comcast.net JOIN :#esoteric < 1167867068 0 :digital_me!n=digital@h-69-3-122-101.dnvtco56.dynamic.covad.net JOIN :#esoteric