00:15:01 <dogface> Why does it indent by 2 in one place and 4 in another?
00:15:29 <olsner> dogface: rounding error, it's really indented by 3.14 in every step :P
00:16:31 <dogface> Indenting by 2 in one place and 4 in another seems a weird way to do it, as there aren't many ways to round 3.14 and get 2.
00:16:55 <tusho> dogface: shiftwidth = how much you indent each time
00:17:00 <tusho> shiftwidth*0,shiftwidth*1,etc
00:17:05 <tusho> so you indent 3 spaces, then 6 etc
00:17:53 <dogface> 3.14, 6.28, 9.42, 12.56, 15.70, 18.84, 21.98, 25.12, etc.
00:18:05 <tusho> obviously, you have to round it to actually be able to indent :P
00:18:24 <dogface> Round those and you get 3, 6, 9, 13, 16, 19, 22, 25, etc. The differences are 3, 3, 3, 4, 3, 3, 3, 4 there.
00:18:43 <tusho> I was just answering 'what's a shiftwidth'
00:19:15 * dogface suddenly creates a string of length 22 with 7 periods roughly evenly-spaced
00:20:51 <dogface> Hmm, I'm sure there was a nice Euclidean-algorithm type way of doing that.
00:24:40 -!- adu has joined.
00:25:06 <dogface> Okay, so 7/22 is 1/4 + 1/3 + 1/3 + 1/3 + 1/3 + 1/3 + 1/3 (for unconventional definitions of +), 1/4 is 1/3 + 0/1, 1/3 is 1/2 + 0/1, and 1/2 is 1/1 + 0/1.
00:25:43 <oklopol> dogface: drawing bresenham lines?
00:25:50 <dogface> oklopol: possibly. I don't know what those are.
00:26:02 <oklopol> well drawing a line on a discrete grid
00:26:27 <dogface> Quite likely, in fact. If the Bresenham line-drawing algorithm is related to the Euclidean algorithm in any way, gimme. :-)
00:26:46 <oklopol> i have no idea what's happening here, what's the euclidean algorithm?
00:27:01 <dogface> So, I guess " . . . . . . . ." is quite satisfactory, really.
00:27:27 <oklopol> i see that as " . . . . . . ."
00:28:08 * dogface does the square root of 2 instead
00:28:28 <dogface> ...its reciprocal, rather.
00:28:51 <dogface> The reciprocal of the square root of 2.
00:29:32 <Sgeo> What about it?
00:29:53 -!- tusho has quit ("Leaving...").
00:30:25 <dogface> Sgeo: I'm making a string out of . and | where the length is about sqrt(2) times the number of |
00:31:13 <oklopol> is this for your thue project
00:31:38 <oklopol> is this for your thue project
00:32:33 <dogface> Squaring fractions in my head could get difficult.
00:33:04 <oklopol> why would it get difficult?
00:33:10 <adu> dogface: why?
00:33:13 <oklopol> you don't even have to gcd em
00:33:28 <dogface> oklopol: they could get big after a little while.
00:33:37 <dogface> adu: why am I making those strings?
00:34:12 <adu> is it for divisibility purposes?
00:34:18 <adu> like international paper sizes?
00:35:12 <dogface> Strings where the characters are as evenly spaced as possible are aesthetically pleasing, you know.
00:35:19 <dogface> Great Gadsby, I've got it! Maybe.
00:35:44 <adu> if you want to do something for fun you should design an OS
00:36:17 <dogface> If it has more a than b, get rid of all the a and it should still be evenly spaced.
00:36:55 <Sgeo> No new Freefall yet
00:37:48 <adu> i think if i were to write an OS it would be like BRiX
00:39:12 -!- dogface_ has joined.
00:39:28 <dogface_> An OS would be too difficult. :-P
00:41:30 <adu> dogface_: that depends
00:41:30 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | !garble Yay! It works!.
00:43:14 <adu> dogface: so what about a command-line tool?
00:44:38 <adu> dogface: what about a parser for your own programming language?
00:45:23 <adu> dogface: or a super-optimizing 2,5-Turing compiler?
00:45:34 -!- RedDak has quit (Read error: 104 (Connection reset by peer)).
00:46:46 <adu> one of these has got to be easy
00:49:32 -!- olsner has quit ("Leaving").
00:50:02 <dogface_> Everyone Knows that compiling interpretation is the ultimate form of artificial intelligence.
00:54:07 <adu> interpretation?
00:54:55 -!- dogface has quit (Read error: 110 (Connection timed out)).
01:07:31 -!- adu has quit.
01:35:18 -!- oerjan has joined.
01:35:48 <oerjan> !garble Yay! It doesn't work!
02:00:51 <oerjan> http://www.inthekitchen.co.nz/tips/html/Ham.htm
02:02:21 <oerjan> no hits for hwm-bwg :(
02:49:15 <dogface_> Dwd yww knww thwt w ws w vwwwl tww?
02:49:36 <dogface_> Wnd "tww" ws prwnwwncwd thw swmw wwy ws "too", wvwn.
03:21:53 -!- adu has joined.
03:30:09 -!- Sgeo has quit (Remote closed the connection).
03:46:21 -!- Sgeo has joined.
03:50:32 -!- Sgeo has quit (Remote closed the connection).
04:25:15 -!- adu has quit.
04:35:22 -!- dogface_ has quit (Read error: 110 (Connection timed out)).
05:02:31 -!- oerjan has quit ("leaving").
06:03:44 -!- GreaseMonkey has joined.
06:36:33 -!- Dewi has left (?).
06:36:48 -!- Dewi has joined.
06:37:01 -!- Dewi has quit ("leaving").
06:40:10 -!- kar8nga has joined.
06:41:30 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | i've never heard of optimizing a language in that same language..
06:45:57 -!- poiuy_qwert has joined.
07:48:27 -!- kar8nga has left (?).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:11:10 -!- olsner has joined.
08:28:33 -!- KingOfKarlsruhe has joined.
08:37:38 <AnMaster> <tusho> The Funge-98 (Pressey, 1998) standard got se1
08:37:39 <AnMaster> <tusho> -> has se <-- can't find that with search
08:38:02 <AnMaster> <tusho> This document will be released under either CC-by-sa2 or GFDL when it is finished. As it is not <-- C. Pressy suggested one of those two, I would need to ask him for other ones
08:46:22 -!- kar8nga has joined.
08:58:27 -!- olsner has quit ("Leaving").
09:05:02 -!- poiuy_qwert has quit.
09:19:20 -!- asiekierka has joined.
09:20:21 -!- Corun has quit ("This computer has gone to sleep").
09:21:13 <asiekierka> Yeah, optbot, totally scared. i can't do an optbot since someone will punch me. IN THE FACE.
09:21:13 <optbot> asiekierka: One thing I was planning to do differently was to use the lower 2 bits of each RGB, to give 6 bits to work with. This way it's harder to see the program, but it's still faintly there
09:21:23 <optbot> asiekierka: my decision is that the world is already good enough without a 1-symbol language
09:21:43 <asiekierka> Don't agree. We need a 1-symbol language. But the only way to have it is unary, and unary is bad.
09:21:50 <optbot> asiekierka: i've tried to keep as close to the spirit as possible.
09:21:55 <optbot> asiekierka: # ## # # ## # # #####
09:22:04 <optbot> asiekierka: I'm still not sure what that does.
09:22:22 <asiekierka> Oh, ok, optbot. What else can you tell me?
09:22:23 <optbot> asiekierka: write a parser for it and i'll learn it fully :)
09:22:29 <optbot> asiekierka: if I ever want to kill someone off, I'll send them this computer as a gift
09:22:48 <asiekierka> Oh wait, optbot. I got it, also, don't change the topic, please.
09:22:48 <optbot> asiekierka: where [] is a negative list
09:22:53 <optbot> asiekierka: I find pointers in C rather simple most time, unless you get something mad like: char **** blah[][] (or something like that, saw it once, horrible)
09:23:22 <optbot> asiekierka: then it'll probably get rather esoteric
09:23:44 <optbot> asiekierka: also you can use /dev/udp for a udp connection.
09:23:57 <optbot> asiekierka: oklofok, concentrate.
09:24:13 <optbot> asiekierka: you need to bind a key to that to be able to use it without typing the whole thing
09:24:19 <optbot> asiekierka: Razor-X does.
09:24:26 <optbot> asiekierka: of course, you can't display it or send it to irc...
09:24:31 <optbot> asiekierka: there are reactive haskell gui libraries
09:24:35 <optbot> asiekierka: at least you'd shut up
09:27:54 -!- lament has joined.
09:32:43 <asiekierka> First is @, a starting point defined (is it a command? Hardly)
09:33:08 <asiekierka> Second and third are / and \, mirrors (When you hit a mirror, you bounce off, and the mirror rotates)
09:33:23 <asiekierka> Fourth is D, a deflector (reverses program flow, like, if you were going down, you now go up
09:42:04 -!- Judofyr has joined.
10:36:33 -!- lament has quit (Read error: 110 (Connection timed out)).
10:43:14 <optbot> asiekierka: long time ago i coded in pascal ;p
10:43:25 <optbot> asiekierka: heh... I'm nowhere near familiar enough with C to attempt transforming a language into it.
10:43:39 <asiekierka> optbot: Oh... i see. Sorry, can't help ya with it.
10:43:45 <optbot> asiekierka: I wrote one with single stepping in C and got bored :)
10:44:20 <optbot> asiekierka: or bsmntbombdood fire up bsmnt_bot with bf, please
10:44:52 -!- GreaseMonkey has quit ("You're still in denial. It's easier to lie by saying that I'm lying than to face truth.").
10:51:58 -!- kar8nga has quit ("Leaving.").
11:48:48 -!- tusho has joined.
11:50:50 -!- asiekierka has quit (Read error: 104 (Connection reset by peer)).
11:52:18 -!- asiekierka has joined.
11:54:02 <tusho> asie is your nick pronounced "I see key err ka"
11:54:03 <asiekierka> I had a quite intelligent chat with optbot
11:54:03 <optbot> asiekierka: Is it because you can has cheezburger that you came to me?
11:54:36 <tusho> asiekierka: don't be shocked - he's actually this guy I trapped in my basement
11:54:44 <tusho> like random lines could be that lucid :P
11:55:31 <tusho> asiekierka: sold his soul to the devil
11:55:33 <tusho> 00:38:02 <AnMaster> <tusho> This document will be released under either CC-by-sa2 or GFDL when it is finished. As it is not <-- C. Pressy suggested one of those two, I would need to ask him for other ones
11:55:40 <tusho> i don't see why chris pressey determines what licenses you can use
11:56:04 <asiekierka> ...is making a portable Brainf**k interpreter and editor feasible?
11:56:14 <tusho> AnMaster: change 'standard got se'
11:56:23 <tusho> asiekierka: Very feasable, very uninteresting.
11:56:48 <asiekierka> Imagine if I'm learning in school about esolangs
11:56:50 <tusho> because it's just an interpreter and an editor put together
11:56:53 <tusho> oh, I see, portable
11:56:59 <tusho> uh, just use notepad
11:57:06 <tusho> and compile an .exe or whatever of a BF interp
11:57:09 <tusho> and put it on a floppy
11:57:13 <tusho> asiekierka: start->run->notepad
11:57:27 <AnMaster> tusho, what section, a search doesn't show any "got" in the document
11:57:29 <tusho> asiekierka: oh, I thought you meant on school computers
11:57:41 <asiekierka> A portable device with a NATIVE BF cpu
11:57:55 <tusho> AnMaster: i have funge108.pdf which was downloaded 7 july
11:58:20 <AnMaster> tusho, what section is this got in?
11:58:27 <asiekierka> I will probably add 8 megabytes or so of flash memory
11:58:49 <asiekierka> You will be able to toggle whether 8- or 16-bit
11:58:50 <AnMaster> 50 pages? 65 here... if you check page numbers in the document (last page) it says 59
11:59:15 <AnMaster> tusho, and well 7 july is a bit old
11:59:25 <tusho> The Funge-98 (Pressey, 1998) standard got several unclear corner cases1 and is also missing
11:59:25 <tusho> definitions for non-binar y funges (like ternar y ones). The Funge-98 standard is also written in
11:59:25 <tusho> an essay style rather than like a standard document. This makes the standard vague on several
12:00:16 <asiekierka> So i will need 64kb of RAM, a BF cpu, 8MB flash memory (7 slots+firmware), a... 256x192 or 320x200 screen that's small but readable, and maybe i'll add a serial I/O and functions to support it
12:00:26 <AnMaster> because the single got there was I fixed some time ago
12:00:43 <tusho> AnMaster: well, link me to an updated version
12:00:46 <AnMaster> http://rage.kuonet.org/~anmaster/funge-108/
12:01:10 <asiekierka> File reading will be possible through ,. while USB will use a direct connection
12:01:15 <tusho> AnMaster: self modifying -> self-modifying
12:01:21 <tusho> same page as the god was
12:01:34 <tusho> it's usefulness -> its usefulness
12:01:45 <asiekierka> As in, : will write the current cell's value to the PC, and ; will input a value from the PC
12:01:58 <AnMaster> tusho, how does it's and its differ exactly
12:02:03 <tusho> AnMaster: it's -> it is
12:02:09 <tusho> "it is usefulness"
12:02:35 <tusho> *then that makes no sense
12:02:39 <tusho> also, English makes no sense
12:02:52 <tusho> Funge-108 is based on Funge-98 (Pressey, 1998) which is currently the official standard for
12:02:52 <tusho> Funges. Funge-98 has evolved from Funge-97, which was a generalisation of Befunge-97, which
12:02:52 <tusho> was an improvement over Befunge-96, which was an update of the original Befunge-93 (Pressey,
12:02:52 <tusho> 1993) language definition.
12:02:59 <tusho> 'Funge-98 evolved from'
12:03:04 <tusho> would be more natural
12:03:30 <asiekierka> also, i may make a support for a PS/2 keyboard slot
12:04:01 <tusho> also AnMaster CC-by-nc-sa would be even worse as it'd greatly hamper writing a commercial befunge interp AnMaster
12:04:16 <AnMaster> tusho, I believe that part was copied from Funge-98 standard
12:04:30 <tusho> 'has' is present tense
12:04:38 <tusho> it's stating what this, funge-98, has evolved from
12:04:44 <tusho> but you should refer to it in past tense
12:04:47 <tusho> as it's already happened
12:05:08 <AnMaster> tusho, remember I started out with Funge-98, then reformatted and rewrote parts
12:05:53 <AnMaster> tusho, btw I wrote a funge-like stack in erlang
12:05:58 <tusho> "In two dimensions, we have the following terminology: "
12:06:09 <AnMaster> tusho, yes, copied from Funge-98 again
12:06:16 <tusho> "The following terminology is used for two-dimensional funges:"
12:06:27 <AnMaster> I wanted to get rid of "we" everywhere
12:06:33 <AnMaster> didn't manage yet in all places
12:06:59 <tusho> [[Should we replace the word finger print in Funge-108 to cause less confusion? A finger print may
12:06:59 <tusho> in Funge-98 either refer to the extension or the string that is used to load that extension. ]]
12:07:04 <tusho> fingerprint is the actual fingerprint
12:07:08 <tusho> the string to load it is now the fingerprint's URI :P
12:07:18 <tusho> so instead of ( taking a fingerprint, it takes a fingerprint's URI
12:07:22 <tusho> if you wanted terminology for that :p
12:07:32 <AnMaster> tusho, I need to refer to the old style 4 letter stuff
12:07:43 <tusho> AnMaster: legacy fingerprint
12:07:50 <tusho> AnMaster: legacy fingerprint identifier
12:08:28 <AnMaster> "In Funge-98 the unique ID mentioned above was a 4 letter string, which we refer to as legacy fingerprint identifier."
12:08:55 <tusho> AnMaster: 4 character string
12:09:07 <tusho> character = unicode
12:09:31 <tusho> AnMaster: so ... "was an arbitary string"?
12:09:32 <AnMaster> if you had a 64-bit funge you could do 8 chars
12:09:49 <tusho> AnMaster: well, it's not characters
12:09:52 <tusho> it's a variable number of bytes
12:09:53 <AnMaster> tusho, however all fingerprints I know of are 4 bytes
12:10:03 <tusho> AnMaster: find some way to refer to that :P
12:10:10 <tusho> (variable for interp)
12:10:36 <AnMaster> "In Funge-98 the unique ID mentioned above was a number, often represented as a 4 byte string, which we refer to as legacy fingerprint identifier."
12:10:52 <AnMaster> because technically, all it is is a number
12:11:05 <AnMaster> and FPSP or whatever is then bit shifted
12:11:33 <AnMaster> each letter is simply bit shifted
12:11:37 <tusho> http://www.google.com/search?q=consbreastution
12:12:51 <tusho> AnMaster: Swear filtering gone wrong
12:12:56 <tusho> (Classic -> Clbuttic)
12:13:05 <tusho> cons - tit - ution - consbreatution
12:16:08 <AnMaster> tusho, http://rafb.net/p/u1LNAE18.html
12:16:26 <tusho> AnMaster: looks pretty idiomatic to me
12:16:42 <tusho> though, I think you acn do
12:16:51 <tusho> you can do that in prolog at least
12:17:12 <AnMaster> ./fstack.erl:36: syntax error before: ']'
12:17:12 <AnMaster> ./fstack.erl:3: function swap/1 undefined
12:17:52 <AnMaster> tusho, I'm sure there is some way, I'm still learning the language after all
12:17:54 <tusho> i don't think you need to nest the []s
12:18:30 <tusho> that's constructing
12:18:32 * AnMaster checks if he made some typo in the other
12:18:32 <tusho> not pattern matching
12:18:40 <tusho> though they should be the same
12:18:42 <tusho> so maybe an erlang flaw
12:18:52 <tusho> AnMaster: anyway, does [H1|H2|T] work
12:19:11 <AnMaster> tusho, not a flaw, well yes, an unmatched ]
12:19:42 <tusho> i think idiomatic erlang doesn't put spaces after ,
12:19:51 <tusho> i don't know for certain though
12:19:53 <tusho> but I seem to recall that
12:20:04 <AnMaster> tusho, maybe, I seen both in "Programming Erlang" iirc
12:20:21 <AnMaster> actually, I can replace _T with _
12:20:28 <AnMaster> as I don't need to bother about the value there
12:20:32 <tusho> i've always been interested in erlang because of its insane stuff
12:20:37 <AnMaster> so I can just use _ the anonymous variable
12:20:43 <tusho> - write a networked server just enough to let people connect via telnet and hang forever
12:20:48 <tusho> you can write the code
12:20:50 <tusho> and hot-swap it in realtime
12:20:56 <tusho> without the network server shutting down
12:21:10 <tusho> and you can keep going until you have a fully working telnet game, with the original people still connected
12:21:12 <AnMaster> tusho, I plan to write a small Befunge-93 interpreter in erlang
12:21:16 <tusho> which is totally awesome
12:21:23 <AnMaster> would be great for learning sequential erlang
12:22:23 <tusho> AnMaster: ooh, idea for a simple befunge fingerprint
12:22:23 <AnMaster> http://rafb.net/p/XmkAAv98.html
12:22:34 <tusho> 'FORK'. It has a command, split
12:22:40 <tusho> you give it a direction
12:22:44 <tusho> (up,down,left,right)
12:22:51 <tusho> and a duplicate IP
12:22:54 <tusho> spawns from the fork location
12:23:02 <tusho> and there's another instruction
12:23:08 <tusho> which destroys the current IP
12:23:12 <tusho> (exits the program if there's only one)
12:23:22 <tusho> maybe if two IPs hit each other they merge
12:24:00 <AnMaster> tusho, you know about t and @ right?
12:24:36 <AnMaster> tusho, they are exactly that, with one difference, the ip split at t always start off in opposite direction of the original ip
12:24:47 <tusho> AnMaster: darn, I thought I was being amazing there
12:25:06 <AnMaster> tusho, it is part of standard funge, well optional extension, but not even a fingerprint
12:25:16 <AnMaster> also @ will do exactly what you said in concurrent funge
12:25:24 <AnMaster> tusho, and yes cfunge does concurrent funge
12:25:34 <tusho> AnMaster: you should write a cfunge thing that on startup launches an SDL or whatever window, and then shows you the IPs travelling around fungespace
12:25:36 * AnMaster loves the outcome of this idea of tusho
12:25:38 <tusho> (as arrows above the text)
12:25:52 <AnMaster> tusho, could be done with that frontend protocol idea I had
12:25:53 <tusho> (probably with a configurable delay so you can actually see it)
12:25:58 <tusho> but that would be fun
12:26:05 <tusho> you could make befunge works of art
12:26:20 <AnMaster> asiekierka, as for prng, quite simple
12:26:34 <AnMaster> you just need to nest a lot of ?
12:26:46 <AnMaster> and make sure all numbers have the same number of ? to reach them
12:27:14 <AnMaster> all ? on a given level need to have the same amount of valid exit directions
12:27:28 <tusho> he is talking about brainfuck
12:27:45 <tusho> and only your mind
12:28:24 <AnMaster> tusho, does haskell have a RNG?
12:28:31 <tusho> AnMaster: of course
12:28:35 <tusho> haskell is a real-world langauge
12:28:39 <tusho> there are companies using it
12:28:41 <tusho> webapps made with it...
12:28:46 <AnMaster> tusho, but that can't be very functional
12:28:58 <tusho> AnMaster: it's in the IO monad
12:29:04 <tusho> technically it's not
12:29:09 <tusho> the actual prng algo is functional
12:29:16 <tusho> but you need to initially get the glob of data within IO
12:29:24 <tusho> if you gave it a constant seed it would be purely functional
12:29:38 <tusho> AnMaster: beats me
12:29:41 <tusho> probably implementation defined
12:30:22 <AnMaster> tusho, anyway for funge space... erlang got two forms of modifiable memory, the process dictionary, and ETS tables
12:30:31 <tusho> AnMaster: uh, dude
12:30:35 <tusho> pass around fungespace functionally
12:30:35 <AnMaster> ETS is used for the mnesia database engine so...
12:30:43 <tusho> it'd be slow but idiomatic
12:30:45 <AnMaster> tusho, may be too slow for mycology ;P
12:30:50 <tusho> AnMaster: you said befunge-93
12:31:01 <tusho> you ran mycology on bashfunge.
12:31:14 <AnMaster> tusho, well I did, but it took a few minutes for the 93 part
12:31:52 <AnMaster> but yes tail recursive function to loop over funge space is probably best
12:32:25 <AnMaster> tusho, one issue, I could not do funge-98 in erlang, but I could do 108
12:32:33 <AnMaster> reason? all numbers are BIGNUM
12:32:43 <AnMaster> y in 98 doesn't have a way to say that in cell size
12:33:16 <AnMaster> wait... I could use binary values I think...
12:33:24 <AnMaster> like <<byte, byte, byte, byte>>
12:34:03 <AnMaster> tusho, anyway tail recursion in erlang is fast
12:34:15 <AnMaster> won't actually pass the state around then I think
12:34:24 <AnMaster> but of course new copies will be made
12:35:06 <AnMaster> tusho, anyway Befunge-93 is easy to represent, I don't need any hash even
12:35:12 <tusho> [12:32:27] <AnMaster> tusho, one issue, I could not do funge-98 in erlang, but I could do 108
12:35:14 <tusho> just manually wrap em
12:35:55 <oklopol> use the power of your imagination
12:35:55 <AnMaster> decode_header(<<2#11111111111:11,B:2,C:2,_D:1,E:4,F:2,G:1,Bits:9>>) ->
12:36:01 <AnMaster> that is used to extract a MPEG header
12:36:44 <AnMaster> <<?IP_VERSION:4, HLen:4, SrvcType:8, TotLen:16,
12:36:45 <AnMaster> DestIP:32, RestDgram/binary>> when HLen >= 5, 4*HLen =< DgramSize
12:36:58 <tusho> AnMaster: hmm, some weird kind fof parser DSL?
12:37:11 <tusho> AnMaster: that << >>
12:37:18 <tusho> dsl=domain specific langauge
12:37:20 <tusho> embedded 'little language'
12:37:25 <tusho> AnMaster: it seems to be a parser thing
12:37:29 -!- oklopol has quit (Read error: 54 (Connection reset by peer)).
12:37:32 <AnMaster> a very fast array of byte array
12:37:45 -!- oklopol has joined.
12:38:03 <AnMaster> tusho, http://rafb.net/p/MkZdl121.html
12:38:20 <AnMaster> tusho, and the things above was simply pattern matching of binaries
12:38:27 <AnMaster> very powerful the erlang pattern matching
12:38:40 <tusho> haskell's pattern matching is powerful too
12:38:59 <tusho> yes, if you stored it as a list of bits :P
12:39:19 <AnMaster> tusho, read the paste above, then read http://rafb.net/p/A0L2OX22.html
12:39:49 <AnMaster> also the odd fi is the pastebin messing up on the unicode ligature fi
12:40:30 <AnMaster> anyway very nice and powerful pattern matching
12:40:51 <AnMaster> oklopol, I'm learning erlang you see
12:41:31 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | write -> wrote.
12:41:32 <oklopol> hehe, read that as "i'm mislearning erlang"
12:42:14 <oklopol> 14:41… × AnMaster slaps oklopol <<< see, proof
12:42:14 <AnMaster> oklopol, I think this one is pretty idiomatic: http://rafb.net/p/XmkAAv98.html
12:42:23 <AnMaster> <oklopol> hehe, read that as "i'm mislearning erlang"
12:46:13 <AnMaster> oklopol, if you do, I have a question for you, about how you would do one thing
12:47:47 <AnMaster> oklopol, ok, would you use ETS or a passed around state if you implement Funge and need to pass around the funge space?
12:48:34 <AnMaster> "ets and dets are two system modules that are used for efficient storage
12:48:34 <AnMaster> of large numbers of Erlang terms. ETS is short for Erlang term storage,
12:48:34 <AnMaster> and DETS is short for disk ets.
12:49:01 <AnMaster> oklopol, rather than a passed around state?
12:49:09 <asiekierka> So if you have a 64MB quine, you win, lol
12:49:14 <oklopol> asiekierka: that's quite trivial
12:49:20 <AnMaster> asiekierka, it is always possible to do a larger one
12:49:32 <AnMaster> you could probably write a program to generate one of x size
12:49:48 <AnMaster> and then have it generate several GB
12:50:06 <asiekierka> well, 6 hours, also, i don't allow any programs
12:50:36 <AnMaster> how would you know someone didn't just upload the result of a generator he/she wrote
12:51:06 <asiekierka> Also, if i found out copies of the same quine (you copied a quine 100 times in a file and it worked), you are dq'ed
12:52:08 <oklopol> asiekierka: one way to make a bf quine is to first create something like numbers 1-8 at the beginning of the memory array
12:52:43 <oklopol> then, you write a latter part, that writes out these numbers, first once again in the form +++>++++>
12:53:04 <oklopol> then in the form of bf code, with some encoding of operations like 1->+, 2->-, 3->[ etx
12:53:20 <oklopol> now, you can bloat bf code in tons of ways, automatically
12:53:44 <asiekierka> you can do +-+-+-+-+-+-+-+-+-+-+-+-+-+-...
12:54:13 <Tritonio_> but if you bloat the code by doing +-+-+ the quine won't be correct anymore. will it?
12:54:18 <oklopol> you can just make the first part, the generation of the raw data, to adapt to the quine
12:54:40 <asiekierka> Also, i wonder if a contest for a BF randon number generator will be good
12:54:42 <oklopol> to adapt to the code that writes out the raw data
12:55:11 <asiekierka> at least to a point where we know what does what
12:55:23 <tusho> it's way more idiomatic, and you're just doing a toy interp besides
12:55:24 <oklopol> Tritonio_: well i'm just trying to show it's trivially reduced to the halting problem to figure out whether the program has been automatically randomized
12:55:54 <Tritonio_> ok. but is there a way to bloat a quine in a way that it still remains a quine??
12:56:06 <oklopol> Tritonio_: yes, the one i just explained
12:56:59 <oklopol> that is run with a memory array filled with numbers 1-8
12:57:13 <oklopol> it first iterates through all these numbers
12:57:19 <Tritonio_> it has to fill the array with these numberss right?
12:57:43 <oklopol> and writes out +++> for 3 or +++++> for 5 etc
12:57:53 <tusho> AnMaster: just do it :P
12:57:58 <tusho> you need to learn thinking functionally anyway
12:58:01 <oklopol> Tritonio_: not yet, just imagine this part first.
12:58:08 <oklopol> unless you already got the whole thing
12:58:15 <asiekierka> not only it's standalone, as in, you boot it from a floppy, it's also 100% asm and quite fast
12:58:17 <AnMaster> tusho, well doing tail recursive is pretty easy
12:58:25 <tusho> AnMaster: just do it
12:58:28 <tusho> befunge is trivial
12:58:36 <oklopol> anyway, after it's iterated through all the numbers, it returns to the beginning of the memory
12:58:45 <oklopol> and writes all the numbers again
12:58:47 <AnMaster> and I will need to pass around some state, like ip location, ip mode and such, anyway
12:59:07 <oklopol> so that 1 will become +, 2 becomes -, 5 becomes . etx
12:59:27 <oklopol> now, you can see once we have this program that writes the contents of the memory array out in this way
12:59:34 <AnMaster> <asiekierka> you can do +-+-+-+-+-+-+-+-+-+-+-+-+-+-...
12:59:34 <AnMaster> <oklopol> [...] -> [[...]] etc
12:59:45 <AnMaster> any decent interpreter would optimize that
13:00:02 <tusho> don't reply unless you read the context
13:00:13 <oklopol> now, we just need to convert it to a program creating the numbers 1-8 on the memory array representing the code
13:01:11 <asiekierka> http://asiekierka.boot-land.net/bfboot.zip - an untested version of a standalone bootable bf interpreter a friend made for me in like, 2007
13:01:13 <oklopol> now you can see you can just do anything that semantically keeps the bf program the same, and it will still stay a quine
13:01:40 <Tritonio_> yes but by trying to convert it to a program that writes it's code on the array is equally difficult with making a quine from the scratch. So why bother to create the part of the code that prints the memory cells like brainfuick commands?
13:02:11 <tusho> asiekierka: is it faster than bff
13:02:22 <oklopol> well that's the easiest way to make a quine "from scratch"
13:02:25 <asiekierka> I don't know, didnt test it as you must input everything through cli for now
13:03:19 <oklopol> Tritonio_: yes, you missed something
13:03:39 <asiekierka> I think the i/o functions take 20-40 cpu cycles at most
13:03:44 <oklopol> you see, if the program to do all that writing i explained earlier were +++.+,+,+.+,, which we know it's not
13:04:14 <oklopol> then the part that writes it on the memory array would simply be +>+>+>++++++>+>+++++++>+>+++++++>+>++++++>+>+++++++>+++++++
13:04:49 <oklopol> it's simpler than making a quine, because it doesn't have to write *itself* on the array, just the program
13:04:57 <oklopol> because the program is what does the actual quining
13:06:10 <optbot> tusho: this is why we can't have nice things
13:06:13 <oklopol> this is the usual way to make a quine, you make "data", and you make "code"; code is something that takes the data, and first writes it in the form it was probably created in (here the +++>+++>++++> form), and then as representing something that could be conceived as code
13:06:14 <optbot> tusho: I already did 19
13:06:25 <oklopol> now, if you encode "code" in "data", you will have a quine
13:07:01 <oklopol> and because the encoding will usually be trivial, and automatizable, you can do the data creation part automatically for any code you can think of
13:07:07 <oklopol> as long as it has the same functionality
13:07:53 <oklopol> in a language with a greater number of dimensions for the memory than 1, you can trivially wrap it in something like an interpreter for another langauge
13:08:21 <oklopol> (most languages have an infinite number of dimensions)
13:08:53 <oklopol> i think a language has infinite number of dimensions iff you can store a tree structure natively
13:09:43 <oklopol> did anyone who already didn't know how quines are done get my explanation there?
13:10:14 <oklopol> well yes, recursive structures means that automatically
13:10:31 <oklopol> basically just an issue with esolangs
13:13:41 <AnMaster> tusho, I think passing the funge space around will be very slow, because accessing head of list is fast, but accessing it elsewhere isn't
13:14:00 <tusho> AnMaster: it doesn't matter if its slow
13:14:07 <tusho> it's good for learning how to structure things functionally
13:14:13 <AnMaster> tusho, also you can't access by index
13:14:20 <tusho> yes you can, there's a function for it
13:14:40 <tusho> I don't know erlang, but I know it has a function for accessing an element in an index in a list
13:14:47 <tusho> because every non-esoteric language with lists has one.
13:14:47 <AnMaster> tusho, maybe using a dict, still functional
13:15:07 <tusho> AnMaster: look around for the right function for al ist
13:15:15 <tusho> a dict would be better
13:15:21 <AnMaster> tusho, I think a key-value dictionary is better yeah
13:15:32 * AnMaster looks up manual page for dict module
13:15:34 <oklopol> if it doesn't have it, you can write the two lines of code yourself
13:16:29 <Tritonio_> oklopol, still don't get some parts... Ok first you write some bf code (call it A) that iterates all cells and prints +++> if it encounters a 3 etc. right?
13:17:06 <AnMaster> http://rafb.net/p/EXin4t44.html
13:17:38 <Tritonio_> oklopol, also after that the same code has the ability to convert them into brainfuck commands and print them as well.
13:17:40 <oklopol> anyway what you want here for idiomaticity and speed is straw
13:17:50 <AnMaster> in b93 only code and string mode are allowed
13:17:53 -!- Sgeo has joined.
13:18:06 <AnMaster> so I'd probably do "stringmode" and then a true/false
13:18:08 <oklopol> so we know A is a very simple bf program that takes about 15 minutes to write
13:18:47 <Tritonio_> so if it encountered 1,2,3,4 it would print: +>++>+++>++++>+-<>
13:19:23 <Tritonio_> so then you have to make the last part (+-<>) been able to do what code A is able to do?
13:19:51 <Tritonio_> and that would change the left part too that creates that values on the memory
13:19:51 <oklopol> there are two things you have to write
13:20:07 <oklopol> as any program whatsoever that does what A is supposed to do
13:20:31 <oklopol> which is simply a conversion of A into + -> +>, - -> ++>, etc
13:20:59 <oklopol> (concatenation of B and A that is)
13:21:06 <tusho> AnMaster: why call it anything
13:21:11 -!- kar8nga has joined.
13:21:13 <tusho> just make befunge.erl on your HD
13:21:14 <AnMaster> tusho, need to have a name to run it :P
13:21:16 <tusho> and don't release it
13:21:20 <tusho> because it's not interesting :-P
13:21:26 <oklopol> B is insanely trivial to write, and can be automatized easily
13:21:30 <tusho> AnMaster: well, you could pastebin it
13:21:34 <tusho> but just call it befunge.erl
13:21:45 <oklopol> A is a program that just does some printing given data
13:21:53 <AnMaster> tusho, that is the erlang way :P
13:21:55 <tusho> befunge-93 is like 30 lines of C AnMaster
13:22:00 <tusho> it doesn't need multiple modules
13:22:08 <tusho> AnMaster: if you're being sarcastic then fine
13:22:17 <tusho> but idiomatic erlang does not split up a trivial thing into multiple modules
13:22:22 <tusho> and befunge-93 is the essence of trivial
13:22:31 <AnMaster> tusho, well not trivial, but stack is one module
13:22:34 <Tritonio_> oklopol, oooh ok! I got it... Thanx! :-)
13:22:41 <tusho> AnMaster: erlang probably has one built in
13:22:57 <AnMaster> there is stack trace, but no stack as far as I can find
13:30:00 -!- asiekierka has quit.
14:23:06 <AnMaster> yay I managed to load the funge space into a dict
14:23:46 <AnMaster> http://rafb.net/p/b7MKra33.html
14:23:57 * tusho will be very scared on the day when AnMaster starts preferring a functional language to C for a lot of tasks. :P
14:24:10 <tusho> it'd have a big effect on Hell's temperature
14:24:30 <tusho> AnMaster: looks pretty idiomatic
14:24:35 <AnMaster> I must have a off by one error
14:25:02 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
14:26:07 <AnMaster> http://rafb.net/p/H2hZGg31.html
14:26:13 <AnMaster> tusho, and error there I think
14:26:23 <AnMaster> I probably put \n into funge space at load time
14:29:48 <tusho> now repaste and ask #erlang if it's idiomatic
14:29:56 <tusho> loooks it but who knows
14:30:16 <AnMaster> tusho, nah I'll idle there first
14:30:22 <AnMaster> to see what sort of channel it is
14:30:26 <tusho> AnMaster: i've been in there before
14:30:29 <tusho> they're very friendly
14:30:35 <AnMaster> tusho, I want to see for myself thanks
14:30:53 <tusho> also I've never seen another channel like ##c in my life
14:32:43 <AnMaster> http://rafb.net/p/ljoGPF37.html
14:33:13 <AnMaster> tusho, by the way, had I used C I would have been done already
14:33:20 <tusho> AnMaster: That might be because you know C. :P
14:35:57 <AnMaster> tusho, I still get some trailing newlines at the end hrrm
14:36:35 <AnMaster> oh well, probably a typo in dump
14:45:03 <AnMaster> loop(#fungeState{}, [], Space).
14:46:03 <tusho> AnMaster: Sounds reasonable.
14:46:36 <AnMaster> actually make that fState, because I will need to type it a lot
14:48:37 <AnMaster> #fState{x=X, y=Y, dx=DX, dy=DY} = State,
14:48:37 <AnMaster> NewState = State#fState{ x=X+DX, y=Y+DY },
14:48:37 <AnMaster> loop(State, Stack, FungeSpace).
14:48:43 <AnMaster> should work at the end of the main loop
14:49:20 <AnMaster> that would have been cleaner in C, just +=
14:49:33 <AnMaster> oh and make State NewState on last line
14:50:27 <tusho> AnMaster: also, there's probably an easier way to do it
14:50:41 <tusho> so you can't just say "ah, I don't know Erlang all that way, but this first try evidently proves that it would be cleaner in C"
15:22:02 <tusho> AnMaster: surely that's enough idling
15:38:22 -!- oklofok has joined.
15:38:37 -!- oklopol has quit (Read error: 113 (No route to host)).
15:38:40 -!- Deewiant has quit (Read error: 104 (Connection reset by peer)).
15:43:05 <AnMaster> 20> efunge:main(["hello.bf"]).
15:43:19 <AnMaster> but enough to print a simple string
15:43:44 <AnMaster> most other instructions are not yet implemented
15:45:53 -!- dogface has joined.
15:52:30 -!- Deewiant has joined.
15:52:39 -!- MikeRiley has joined.
15:52:47 <tusho> Deewiant and MikeRiley
15:52:55 <tusho> on a related note, AnMaster is implementing yet another funge...
15:53:20 <Deewiant> the computer my irssi was running on was booted :-/
15:53:58 <AnMaster> so I decided to make a small funge93 interpreter in it
15:55:06 <dogface> There's a possibility that my brother will be coming to Normish.
15:55:33 <tusho> dogface: Wrong channel.
15:55:52 <dogface> If I said it in #rootnomic, I'd be talking to myself.
15:56:03 <tusho> If you said it in ##nomic you wouldn't.
16:01:32 -!- MikeRiley has quit ("Leaving").
16:10:35 <AnMaster> blergh, seems like erlang always display a [] at input
16:16:33 -!- tusho has changed nick to tusho|away.
16:18:46 -!- dogface_ has joined.
16:25:30 <AnMaster> oklofok, I need to get one char of input. with no prompt whatsoever
16:31:35 -!- tusho|away has changed nick to tusho.
16:32:47 -!- kar8nga has left (?).
16:39:38 -!- KingOfKarlsruhe has quit (Remote closed the connection).
16:46:43 <AnMaster> tusho, it works now for life.bf, but is very very slow
16:48:05 -!- tusho has changed nick to tusho|away.
16:57:25 -!- Hiato has joined.
16:57:30 -!- Hiato has quit (Client Quit).
16:58:36 <dogface_> Three! Point! One! Four! One! Five! Nine! Two! Six! Five! Three! Five! Eight! Nine! Seven! Nine! Three! Two!
17:02:04 <oklofok> a rare example of a sentence shorter in finnish than in english
17:02:35 <Deewiant> I'd say it's more like MAINIOTA
17:02:49 <Deewiant> dogface_: http://abstrusegoose.com/23
17:07:20 <fizzie> What, was Deewiant also a .fi person? I never knew! (Or if I knew, I already forgot.)
17:07:22 <oklofok> "it's wonderful to be alive"
17:07:37 <oklofok> on mainiota olla elossa sounds ridiculous :D
17:08:45 <oklofok> /nick oklofik & /nick Deefiant, we should all follow fizzie's example and show our nationalities in our nicks
17:09:04 <oklofok> then perhaps /nick dogfuk?
17:09:14 <Deewiant> I thought fizzie was from ireland
17:09:55 -!- tusho|away has changed nick to tusho.
17:11:14 <AnMaster> Deewiant, tusho: http://rafb.net/p/ONXHUD93.html
17:11:32 <AnMaster> as it outputs [] at a prompt every time
17:11:46 <AnMaster> and the exit status at the end every time
17:14:05 <dogface_> I'm honored to be mistaken for a Brit. :-P
17:15:13 <AnMaster> Deewiant, that is what I posted at http://rafb.net/p/ONXHUD93.html
17:15:42 <Deewiant> ah, I would have thought that's a mycorand paste
17:16:08 <Deewiant> given that you said "mycorand works" soon after pasting it
17:16:40 -!- kar8nga has joined.
17:16:43 <AnMaster> anyway I need to figure out how to 1) run it stand alone, not inside erlang, 2) avoid prompt on input 3) get rid of the "** exception exit: normal"
17:17:23 <tusho> AnMaster: as for 1)
17:17:26 <tusho> that's not idiomatic erlang
17:17:32 <tusho> as it's not ususally used for standalone progs
17:17:35 <tusho> as opposed to servers, etc
17:17:54 <tusho> just run it from the repl, or if you must, write a shell script that feeds run(read_file(filename)) to erlang
17:17:54 <AnMaster> tusho, it is still kind of idiomatic
17:18:05 <AnMaster> it is a 3D editor coded in erlang
17:18:15 <tusho> yes and how do you know it's idiomatic?
17:18:24 <AnMaster> tusho, well can't be 100% sure of that
17:18:41 <AnMaster> and yes shell script is what I plan to use
17:18:50 <AnMaster> that is the official way to run standalone
17:19:37 <tusho> AnMaster: have you done any of the concurrency or network stuff yet
17:20:02 <AnMaster> tusho, I did test distributed erlang though today
17:20:21 <AnMaster> but I haven't actually used such stuff for something useful yet no
17:40:59 -!- ais523 has joined.
17:41:29 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | apply is depreciated??.
17:41:43 <tusho> i am behind you with a knife
17:41:50 <tusho> you shall never beat me to greeting me again
17:41:58 -!- tusho has changed nick to als523.
17:42:03 * als523 has quit (killed by tusho)
17:42:06 -!- als523 has changed nick to tusho.
17:43:48 <dogface_> (a -> m b) -> m a -> m b. a -> m a.
17:44:19 <ais523> what are the dots for?
17:44:30 <dogface_> Pretend they're semicolons or something.
17:44:30 <ais523> apart from that it looks like a typical Haskell data type
17:46:07 <tusho> dogface_: flip (>>=). return.
17:48:55 <dogface_> (a -> m b) -> (a -> b) -> m a.
17:50:37 <dogface_> Hmm, I wonder what you do get with primitives (a -> m b) -> (a -> m a) and... something else.
17:53:27 <dogface_> Er, (a -> m b) -> (a -> b) -> m a and something else.
17:55:50 <dogface_> That's S, there's no K or I, B is m a -> (b -> a) -> m b, C is (a -> m b) -> b -> m a, and W is (a -> m a) -> m a.
17:57:14 <dogface_> Is S, B, C and W sufficient to make K?
18:10:30 <AnMaster> ais523, I wrote a Befunge 93 interpreter in erlang today
18:10:50 <AnMaster> which is against the funge specs
18:11:03 <AnMaster> I'll upload the stuff shortly btw
18:11:56 -!- tusho has changed nick to tusho|away.
18:15:49 -!- Hiato has joined.
18:15:52 <AnMaster> http://bzr.kuonet.org/efunge/trunk/files
18:16:34 <AnMaster> ais523, As I'm trying to learn erlang currently, I have gone for "idiomatic, and idiotic" instead of "fast"
18:16:43 <ais523> well, I don't know erlang
18:17:01 <AnMaster> ais523, so it looks like garbage to you? ;)
18:17:02 -!- Hiato has quit (Client Quit).
18:17:17 <ais523> no, most programming langs are at least slightly readable even to people who don't know them
18:17:22 <ais523> some esolangs being the exception of course
18:17:43 <AnMaster> ais523, what do you think of this erlang code then?
18:18:00 <ais523> ah, I was wondering if it was declarative, it looks like it could be
18:18:04 <AnMaster> so I guess knowing haskell and/or LISP could help
18:18:44 <AnMaster> ais523, but I think I heard erlang got some traces of prolog in it's style too
18:18:49 <ais523> it's almost an esolang, it's too practical to be an esolang but the paradigm is likely to be unlike anything you've ever seen
18:18:53 <ais523> but that erlang code certainly reminded me of it
18:19:10 <AnMaster> you mean prolog or erlang is too like an esolang?
18:19:21 <ais523> I was talking about Prolog
18:20:19 <AnMaster> ais523, fstack.erl is probably the most readable
18:22:47 <AnMaster> ais523, so what do you think of erlang so far?
18:23:07 <ais523> too busy thinking about other things to form an opinion
18:23:17 <ais523> it's Monday and I was late in as it is, and I have lots of things to do on Mondays
18:28:41 * dogface_ searches for compilers from Unlambda
18:29:09 <ais523> dogface_: I don't think there are any, I wrote an Unlambda -> Underlambda compiler once but deleted it by mistake
18:29:49 <dogface_> The Esolang wiki links to two Unlambda interpretations; I don't know if they're compilers.
18:30:44 <dogface_> nsl.com looks like it could be some official site. "National Science Library" or something. Of course, nsl.org would look even more official, nsl.gov more official still.
18:30:50 <dogface_> Instead, it's "No Stinking Loops".
18:31:22 <dogface_> Implementation number 1 is an interpreter.
18:32:53 -!- pikhq has joined.
18:33:00 -!- poiuy_qwert has joined.
18:34:36 -!- Tritonio_ has quit (Remote closed the connection).
18:35:36 <dogface_> . F# B D . . E . . B . . . G C D . . E . . C . . .
18:35:57 <ais523> Unlambda is very hard to compile
18:36:06 <dogface_> (Octave break between E and F.)
18:36:11 <ais523> which doesn't correspond to anything in most functional languages
18:36:31 <dogface_> All it does is change evaluation order.
18:36:39 <ais523> yes, I know what it does
18:36:41 <dogface_> Evaluation order is already a pest, I imagine.
18:36:43 <ais523> but how do you compile it?
18:36:53 <dogface_> The same way you compile everything else about evaluation order.
18:37:24 <ais523> dogface_: if you're compiling into a strict lang then the evaluation order's the same between Unlambda and your strict functional lang, except for d
18:38:07 <dogface_> I want to compile into a purely functional language, like C bytecode or something. :-P
18:38:33 <ais523> dogface_: well ehird and I have an Underload -> C compiler, and I think an Underlambda -> C compiler might work along similar lines
18:38:37 <ais523> continuations are the problem with that, though
18:39:01 -!- tusho|away has changed nick to tusho.
18:39:19 <ais523> a lang I invented, which is designed to be similar to Underload but more practical
18:39:30 <ais523> and also designed so that Unlambda can be compiled into it
18:39:45 <ais523> yet that Underlambda itself can be compiled into an imperative lang
18:39:57 <dogface_> Is it an impure functional programming language with side effects, a delay combinator, and continuations?
18:40:31 <ais523> no delay combinator, and it's concatenative not functional, but otherwise you're about right
18:40:43 <ais523> I worked out how to get around the delay combinator problem
18:41:01 <ais523> unfortunately I accidentally deleted the file where I stored that information so I'll have to try to work it out again
18:41:08 <ais523> luckily though as I did it once I'll have memory to help me
18:41:18 <oklofok> ". F# B D . . E . . B . . . G C D . . E . . C . . ." does this have relevant spaces?
18:41:19 <dogface_> What is a concatenative language?
18:41:31 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | and autoconf detects whether it's available or not and selects the right version.
18:41:33 <dogface_> oklofok: the periods are rests.
18:41:37 <ais523> dogface_: first see http://esolangs.org/wiki/Underload, that's a concatenative tarpit
18:41:38 <tusho> dogface_: compose(x,y)=concat(x,y)
18:41:42 <tusho> for valid programs x and y
18:41:44 <ais523> that'll give you a good guide
18:41:45 <tusho> stack-based usually
18:42:06 <ais523> but the usual form of a concatenative language is one in which all the commands are functions from stacks to stacks
18:42:21 <ais523> and concatenating two commands in the source is equivalent to composing the functions they represent
18:42:36 <ais523> and you can put bits of program on the stack and manipulate them like data
18:42:44 <dogface_> So it just executes all commands in sequence, with no jumping allowed?
18:43:08 <ais523> combinators can execute commands out of sequence
18:43:13 <ais523> e.g. Underload has ^ which is eval
18:43:25 <oklofok> dogface: i'm assuming a scale of B C C# D D# E F F# G G# A A# B
18:43:30 <ais523> and although it always does things in sequence you can create a loop by calling ^ recursively
18:43:53 <dogface_> oklofok: F F# G G# A A# B C C# D D# E was what I was thinking.
18:44:02 <ais523> e.g. (:^):^ is the simplest possible infinite loop in Underload
18:44:09 <ais523> (:^) puts :^ on the stack
18:44:12 <ais523> then : makes two copies of it
18:44:16 <ais523> and ^ evaluates one of them
18:44:36 <ais523> if EgoBot were here I could show you Underload live in the channel
18:44:38 <dogface_> oklofok: I guess I was making assumptions about what you meant by scale.
18:45:16 <dogface_> On the keyboard, the notes are in the order F#, B, C, D, E.
18:46:20 <dogface_> You're not trying to play this in just intonation, are you? :-)
18:46:29 <dogface_> Something that popped into my head.
18:46:29 <tusho> ais523: egobot may not be here
18:46:31 <optbot> tusho: i know great books, but i'm too lazy to borrow them from the library
18:46:53 <ais523> tusho: can optbot interpret Underload?
18:47:00 <tusho> ais523: see, he just did
18:47:04 <tusho> he even told you he did
18:47:06 <optbot> dogface_: You've got me hooked.
18:47:13 <oklofok> dogface: in just intonation?
18:47:27 <ais523> tusho: I don't think optbot can really, it's struggling even with a simple quine
18:47:35 <dogface_> oklofok: using whole number frequency ratios, rather than those usually found on a piano, which are irrational.
18:48:24 -!- RodgerTheGreat has joined.
18:49:08 <RodgerTheGreat> I have newfound evidence that Edsger Dijkstra was a shithead.
18:49:09 <RodgerTheGreat> http://www.cs.utexas.edu/users/EWD/transcriptions/EWD10xx/EWD1009.html
18:49:19 <RodgerTheGreat> http://www.ecn.purdue.edu/ParaMount/papers/rubin87goto.pdf
18:50:13 <RodgerTheGreat> tl;dr: "Rubin sucks, and so do you guys. Here's some APL-looking stuff. You don't understand this, and you aren't qualified to do your jobs. kthxbai"
18:50:19 <oklofok> dogface: western chromatic, just ensured usa uses B as A##/Cb, and not as A#/Hb like finland
18:50:49 <tusho> RodgerTheGreat: you have tried to prove that he's a shithead very often
18:50:56 <tusho> you just make yourself look ridiculous, most of the time
18:51:06 <tusho> if you know anything about djikstra you would know that that is his programming langauge
18:51:12 <tusho> that he used for everything
18:51:34 <dogface_> You have your sharps in the right places, then.
18:51:36 <tusho> furthermore, the arrogance required to propose yourself as more intelligent than djikstra should probably be causing the universe to implode by now
18:51:39 -!- Sgeo has joined.
18:53:27 <oklofok> . F# B D . . E . . B . . . G C D . . E . . C . . . <<< i dislike the second D
18:53:37 * pikhq beats tusho with a large stick
18:53:59 <pikhq> Because Dijkstra is a fiendishly clever ass.
18:54:08 <pikhq> The two are probably related.
18:54:17 <dogface_> So Underload is "execute all commands in sequence, with no jumping allowed", if you keep a parenthesis number around and interpret commands differently when it's positive.
18:54:40 <dogface_> oklofok: is that the same as what I said?
18:55:40 <oklofok> anyway, as i'm probably the only one interested in what melodies pop into your head, i suggest using my standard notation :P
18:55:55 <oklofok> a-z0-9A-Z where 0 is the suggested base note
18:56:03 <oklofok> whatever the correct term is
18:56:45 * dogface_ tries sharpening and flattening the offending D
18:57:20 <oklofok> i love pieces that mix minor and major in the same riff
18:57:44 <oklofok> i actually have a piano riff where left had is in minor, and right hand in major
18:58:48 <dogface_> That's what you get when you use thirds all over the place, of course.
18:59:33 <dogface_> Sharpening the D makes it sound... more emotional and better, I think.
18:59:39 <dogface_> Flattening it makes it sound more dissonant.
19:03:02 <dogface_> I think I'd like to modify your notation a bit.
19:13:34 -!- sebbu2 has changed nick to sebbu.
19:14:24 <dogface_> The character alone is whatever's in the center column. The character followed by . is the leftmost thing in the row. The character followed by ^ is the rightmost thing in the row.
19:15:13 <dogface_> So you know what's a sharp and what's a flat.
19:15:20 <oklofok> so my system but with useless information added?
19:15:32 <dogface_> It's not useless if you're playing in a different tuning. :-P
19:15:51 <dogface_> Also, flattening G# is more common than flattening Ab, I imagine.
19:16:05 <ais523> there's even special notation for double-sharps
19:16:23 <oklofok> there are frequencies, and there is a chromatic scale
19:17:17 <dogface_> In something like 19-tone equal temperament, G# and Ab are different notes. In just intonation, they're probably still different notes.
19:17:30 <ais523> they are different in just
19:17:42 <ais523> I actually wrote a program to play just scales and equitempered scales one after another
19:17:46 <AnMaster> ais523, would tail recursive functions cause issues for ick?
19:17:46 <ais523> they both sounded correct
19:17:49 <ais523> despite sounding different
19:17:56 <ais523> AnMaster: how are you doing the tail recursion?
19:18:02 <dogface_> Everything sounds correct. :-P
19:18:04 <AnMaster> ais523, just wondering, in general
19:18:06 <oklofok> give or take some integer multiple of 2
19:18:15 <ais523> AnMaster: well, what is tail recursion? It's doing goto rather than a procedure call
19:18:19 <ais523> and ick doesn't care about gotos
19:18:35 <AnMaster> ais523, hm true, what about non-tail recursion then?
19:18:51 <ais523> as long as the functions return in the reverse of the order they were called in
19:18:54 <ais523> which is usual in recursion
19:19:09 <ais523> or at least, I mean a function stops running after it returns
19:19:14 <AnMaster> ais523, what if there is a computed COME FROM in such a function?
19:19:19 <AnMaster> so it jumps out of the middle of one
19:19:55 <ais523> AnMaster: I wrote a long essay of what you could and couldn't do in such cases, line label in the middle of a recursive function is fine as long as it's declared with ICK_EC_FUNC_START
19:19:55 <AnMaster> I mean, a computed come from pointed at such a function
19:20:08 <ais523> which means you can't pass it any arguments
19:20:18 <ais523> except via global variables
19:20:46 <AnMaster> which make recursion rather pointless
19:21:02 <ais523> not really, you can do something like just use globals as a parameter-passing method
19:21:28 <AnMaster> ais523, does COME FROM and line labels have to be at the top level of such a function?
19:21:41 <ais523> e.g. int a,b; void recursivefunc(void) {int alocal=a, blocal=b; /* do stuff */; a=alocal+1; b=blocal*2; recursivefunc();}
19:21:45 <ais523> AnMaster: no, they can be anywhere
19:21:50 <ais523> well, anywhere a line label is legal
19:21:50 <AnMaster> or can they be nested deep into, say duff's device
19:21:55 <ais523> so duff's device is fine
19:22:03 <ais523> they do have to be as commands not as expressions though
19:22:29 <AnMaster> as for globals and recursiveness... there is an issue
19:22:56 <ais523> yes you do, look at my example above
19:23:02 <AnMaster> so you will overwrite the arguments of the previous call, right?
19:23:17 <ais523> AnMaster: no, because you store the arguments on the stack, that's what alocal and blocal are for
19:23:33 <ais523> you just use the globals to do parameter-passing by hand
19:23:43 <ais523> otoh there are other problems with auto variables and INTERCAL control statements
19:23:45 <AnMaster> ais523, still such locals will be messed up by your setjmp/longjmp stuff right?
19:24:01 <ais523> AnMaster: they are to some extent, it depends on what you do
19:24:09 <ais523> jumping out of functions is fine, it's jumping into them that's the problem
19:24:35 <dogface_> In 19-tone equal temperament, 0 is 0 steps, 1. is 1 step, 1 is 2 steps, 2 is 3 steps, 2^ is 4 steps, 3. is also 4 steps... what fun!
19:24:46 <ais523> if you NEXT out of a function and RESUME back into it, then its auto variables are preserved if they're volatile or if they're not modified juring that time
19:24:55 <AnMaster> ais523, could you write an C-INTERCAL <-> Haskell interface? because that would be awesome, and so much break the Haskell style XD
19:25:18 <ais523> if you NEXT or COME FROM into a function, then all its auto variables are clobbered (because there's no sensible way to give them a value)
19:25:45 <tusho> [19:21:43] <ais523> e.g. int a,b; void recursivefunc(void) {int alocal=a, blocal=b; /* do stuff */; a=alocal+1; b=blocal*2; recursivefunc();}
19:25:52 <tusho> {top: ...; goto top}
19:25:55 <tusho> recursion is pointless
19:26:17 <tusho> or just use a while loop
19:30:53 <oklofok> dogface: basically the notation you suggested is a complicated version of the normal C-C#-D-...-B-C scale
19:31:24 <oklofok> given that the normal scale is absolute crap, i'd say i dislike yours quite a lot
19:38:32 <tusho> I stand by my assertion that an esolang for messing about with scales and sine waves and stuff would rock.
19:38:32 <AnMaster> tusho, hey! think functional :P
19:38:42 <AnMaster> actually for some stuff I would probably prefer erlang
19:38:49 <AnMaster> but not for something like a funge interpreter
19:38:57 <AnMaster> because a mutable state is what funge is *all about*
19:39:07 <tusho> a functional ircd might work, though :P
19:39:31 <AnMaster> there is an example of a similar thing in "Programming Erlang"
19:39:41 <AnMaster> tusho, using distributed erlang
19:39:57 <tusho> a haskell ircd might just be total win
19:40:15 <tusho> AnMaster: ircds don't have to be overly fast...
19:40:18 <AnMaster> because an ircd should be able to handle 10000 clients at a time
19:40:19 <tusho> besides, haskell is fast
19:40:28 <tusho> AnMaster: well, erlang would certainly manage that
19:40:34 <tusho> haskell probably would too
19:40:38 <tusho> it's not a slow language
19:40:42 <tusho> AnMaster: erlang doesn't use OS threads
19:40:51 <tusho> AnMaster: it uses lightweight green threads
19:40:55 <tusho> AnMaster: it would work fine
19:41:02 <tusho> AnMaster: after all, erlang is used in telephone systems
19:41:05 <AnMaster> tusho, when I think irc I think non-blocking IO
19:41:06 <tusho> that's what it was designed for
19:41:11 <tusho> AnMaster: erlang has that too
19:41:39 <tusho> AnMaster: i think erlang has them
19:41:48 <tusho> erlang is often used for many-client internet stuffs.
19:41:53 <AnMaster> tusho, I do know a bit about ircd programming :)
19:42:19 <AnMaster> tusho, and then there are outsiders like Wings3D in erlang
19:42:40 <AnMaster> I find wings3d easier to use than blender
19:42:47 <tusho> i must admit i don't see how a 3d modeler benefits from erlang's niche
19:43:31 <AnMaster> I often make the models in wings, then put them together in blender and add nurbs objects and such
19:48:55 <AnMaster> oklofok, what is that straw you mentioned?
19:49:09 <AnMaster> tusho, so what shall I write next in erlang hm...
19:49:37 <oklofok> specifically designed for pure functionality with in-place mutability
19:49:45 <AnMaster> ais523, you never posted those specs and examples of feather btw
19:49:54 <ais523> AnMaster: no, because they were so misleadingly wrong
19:50:16 <AnMaster> ais523, well no way I can "get a feeling" for the language then
19:50:27 <oklofok> AnMaster: there exist none, but i may work on it tomorrow now that i finished my books
19:50:33 <ais523> well no, I'm trying to get a feeling for it myself
19:50:56 <AnMaster> anyway plan for tomorrow: finally track down that damn concurrency bug in cfunge
19:51:04 <AnMaster> then maybe start on some other erlang thing
19:51:30 <AnMaster> or implement some new fingerprint in cfunge
19:51:43 -!- oklofok has quit (Client Quit).
19:52:07 <AnMaster> ok... that didn't make much sense...
19:54:55 <AnMaster> tusho, one thing I like with erlang is that it got stuff like static analyzers bundled with the standard distribution
19:55:09 <tusho> AnMaster: NOMADS!!!!!!!!
19:55:10 <AnMaster> and you can get into a gui debugger easily
19:55:26 <AnMaster> then a few more commands to select what to debug
19:55:46 <tusho> AnMaster: unfortunately
19:55:55 <AnMaster> tusho, well it seems like erlang use it :(
19:56:13 <tusho> AnMaster: for what?
19:56:26 <AnMaster> tusho, for stuff like the debugger
19:56:34 <AnMaster> and dialyzer (the static analyzer)
19:58:09 <tusho> http://www.dangermouse.net/prose/foxc.html
20:00:39 <AnMaster> tusho, http://omploader.org/vbzI1
20:01:12 <tusho> that's tk AnMaster
20:01:21 <AnMaster> tusho, well not sure what it is
20:04:58 <AnMaster> tusho, I think this may be a custom gui system?
20:05:17 <AnMaster> the check boxes look different
20:05:38 <AnMaster> tusho, why do 3D programs do that blergh
20:05:48 <tusho> AnMaster: they're 1337 and totally hardcore.
20:06:06 <AnMaster> tusho, it makes it harder to get used to!
20:06:45 <AnMaster> tusho, anyway sure the erlang debugger doesn't use motif?
20:06:46 <fizzie> It's supposed to be difficult; if it were easy, anyone could do it.
20:07:22 <tusho> AnMaster: not sure
20:07:49 <AnMaster> fizzie, well wings3d is quite easy
20:07:53 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | Apparently my powerful interpreters have gained notoriety :P.
20:07:55 <AnMaster> simpler than blender certainly
20:09:25 <fizzie> On Debian, the erlang-x11 package depends on tk. And the screenshot certainly looks tk-y.
20:10:15 <AnMaster> tusho, I believe efunge will work on Windows btw ;P
20:10:21 <AnMaster> tusho, iirc that is what you always wanted
20:11:08 <fizzie> (But the Tk X11 look-and-feel is modeled after Motif.)
20:16:25 -!- Hiato has joined.
20:18:48 <AnMaster> tusho, is it "idiomatic" or "ideomatic"?
20:19:05 <ais523> although I'm not tusho
20:19:09 <dogface_> I'm having fantasies of someone yelling "FYORR!" fortissimo at G above middle C.
20:19:35 -!- Sgeo has quit (Connection timed out).
20:23:27 <AnMaster> ais523, well I added a readme to efunge
20:24:13 <AnMaster> http://bzr.kuonet.org/efunge/trunk/annotate/10?file_id=readme-20080811191903-8d5vrrxfy6lsf2b2-1
20:24:27 <dogface_> Specifically, the G above middle C at the end of the line "where the lights are bright as the stars" in "Put On Your Sunday Clothes".
20:25:53 <dogface_> Well, it was the one at the beginning of WALL-E.
20:26:07 <dogface_> Originally from Hello, Dolly!.
20:26:29 <dogface_> http://www.youtube.com/watch?v=WbBnXryfjg4
20:26:43 <dogface_> Just the beginning, with the two guys.
20:28:50 <AnMaster> musical, feels like as old as that one "Singing in the rain"
20:29:54 <AnMaster> dogface, anyway I don't have the ability to hear exactly what tone someone is singing
20:30:14 <AnMaster> (that doesn't mean I can't play a bit of piano though
20:32:18 <pikhq> I suspect not everyone here has heard of "Hello, Dolly!".
20:33:31 -!- tusho has changed nick to tusho|away.
20:38:19 -!- MikeRiley has joined.
20:39:54 <AnMaster> tusho|away, you linked "http://www.dangermouse.net/prose/foxc.html"
20:52:37 -!- Corun has joined.
20:55:52 -!- olsner has joined.
21:37:40 -!- MikeRiley has quit ("Leaving").
21:37:40 -!- Corun has quit ("This computer has gone to sleep").
21:38:03 -!- rodgort has joined.
21:39:06 <dogface_> You know, calling me (ello, rodgort) dogface rather than dogface_ pings the wrong client.
21:49:08 <optbot> ais523: actually he could use tusho
21:49:12 -!- Mony has joined.
21:49:21 <ais523> optbot: you aren't making much sense
21:51:11 -!- Hiato has quit (Read error: 104 (Connection reset by peer)).
21:58:22 -!- kar8nga has quit (Read error: 145 (Connection timed out)).
22:00:57 <AnMaster> dogface, it is just about tab completion
22:03:25 -!- tusho|away has changed nick to tusho.
22:09:51 -!- oklopol has joined.
22:15:58 -!- poiuy_qwert has quit (Read error: 110 (Connection timed out)).
22:27:03 -!- ais523 has quit (Remote closed the connection).
22:27:19 -!- ais523 has joined.
22:30:43 <optbot> tusho: They were supposed to eventually crash it :P
22:31:08 <ais523> optbot always gets me when someone activates it out of thin air, I wonder what on earth the subject of the conversation is now
22:31:09 <optbot> ais523: with 1 bit sign, 100 bit exponent and 200bit value
22:31:22 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | !fybs ?.
22:31:25 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | Wassup Slereah (If that was aimed at me :) ).
22:31:27 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | the random -> 000...0 thing.
22:31:33 <ais523> ok, I'll leave it as it is now
22:33:16 <Mony> optbot.... really ? OO
22:33:16 <optbot> Mony: (I only have 807 comment karma too. People just can't accept someone who's INFALLABLY RIGHT)
22:33:43 <ais523> is that French for "wow"?
22:35:19 -!- RedDak has joined.
22:51:48 <pikhq> I'm surprised it doesn't have more consonants.
23:12:40 -!- ais523 has quit ("(1) DO COME FROM ".2~.2"~#1 WHILE :1 <- "'?.1$.2'~'"':1/.1$.2'~#0"$#65535'"$"'"'&.1$.2'~'#0$#65535'"$#0'~#32767$#1"").
23:26:43 <pikhq> Okay, so it's not like I can criticise French for having terribly obtuse spelling...
23:28:39 <pikhq> Given that English is orders of magnitude worse, courtesy of its status as a (calling all linguists: the following classification is a *joke*) Romantic Germanic Celtic language, with hints of all other language families thrown in for good measure.
23:38:15 <tusho> Romantic Germanic Celtic Icic
23:50:32 * pikhq thinks you're full of it. Or full of unlambda.
23:50:33 -!- sebbu has quit ("Quitte").
23:52:44 <pikhq> In case you hadn't noticed, I was *asking* for a definition.
23:53:40 <pikhq> "Fhqwgads." "Fhqwgads?" "Yes. Fhqwgads." "I think you're full of it." "Define fhqgwgads." "?!?"
23:54:50 -!- sebbu has joined.
23:55:38 <tusho> pikhq: No, define "it"
23:59:42 <oklopol> ah the classic quotation joke!