←2014-12-25 2014-12-26 2014-12-27→ ↑2014 ↑all
00:00:12 -!- Phantom_Hoover has joined.
00:00:14 -!- Phantom_Hoover has quit (Changing host).
00:00:14 -!- Phantom_Hoover has joined.
00:02:44 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
00:04:21 -!- roasted42 has quit (Ping timeout: 265 seconds).
00:04:34 -!- mr45_ has joined.
00:06:03 -!- roasted42 has joined.
00:09:39 -!- oerjan has joined.
00:09:39 -!- Phantom_Hoover has joined.
00:14:26 -!- GeekDude has joined.
00:33:59 <int-e> Google... grrrrr.
00:34:05 <int-e> "Our systems have detected unusual traffic from your computer network. This page checks to see if it's really you sending the requests, and not a robot. Why did this happen?"
00:34:30 <int-e> No, I'm human. I can even solve your captcha, but you won't accept it because I didn't allow your cookie.
00:35:17 <int-e> Oh well, IP change helped.
00:35:48 <int-e> (For now)
00:37:18 <oerjan> cheer up and look at their christmas doodle
00:37:47 <int-e> that requires javascript?
00:38:05 <int-e> sorry, not in the mood
00:38:29 <oerjan> of course it does, it's animated
00:38:40 <oerjan> with sound
00:39:02 <int-e> ok, now I'll definitely not try it out
00:39:09 <int-e> thanks for the warning
00:39:29 <oerjan> well the sound is just a guitar riff, really
00:40:11 <int-e> Heh I have xset -b (un)set because I find computer sounds annoying.
00:41:44 <int-e> . o O ( for added irony: np: Carnival by Project Pitchfork )
00:41:52 -!- roasted42 has quit (Ping timeout: 256 seconds).
00:42:06 * oerjan knows not who that is
00:42:10 -!- GeekDude has quit (Quit: {{{}}{{{}}{{}}}{{}}} (www.adiirc.com)).
00:42:33 <oerjan> youtube to the rescue
00:42:49 <int-e> it doesn't matter who, just that it's noise coming from the computer
00:43:03 <oerjan> OKAY
00:43:26 <oerjan> i thought you were just referring to beeping
00:43:44 <int-e> But... I made the choice. I requested it. So that makes it ok.
00:43:55 -!- roasted42 has joined.
00:44:10 <oerjan> i used to have sound off, but since i moved i have volume set to 20%
00:44:36 <oerjan> which is enough in most cases
00:45:44 <oerjan> thx for reminding me to check if google had a christmas doodle btw ;)
00:46:01 <int-e> hmm, don't know how to assess that with 3 volume controls in place. The sound card is set at 0.59*0.91... but there's a lot of room for increased volume on the speakers themselves.
00:46:25 <oerjan> ok
00:46:53 <int-e> I know, very esoteric and highly interesting. It's not a good day for me.
00:48:20 <int-e> despite some Harmful Brainfuck Fun (tm)
00:51:19 <oerjan> it seems hard to make unbalanced loops work in that
00:51:57 <oerjan> hm...
00:53:16 <Jafet> I don't think you want an unbalanced loop in your sound system
00:53:45 <oerjan> tru dat
00:54:05 <oerjan> i _may_ have been referring to Harmful Brainfuck
00:54:16 <HackEgo> [wiki] [[Harmful Brainfuck]] http://esolangs.org/w/index.php?diff=41543&oldid=41542 * 213.162.68.188 * (+183) link to implementation and minimal categories
00:54:32 -!- GeekDude has joined.
00:55:33 <Jafet> I thought relative jump was implemented before.
00:56:57 * int-e waits for Oerjan's Cleanup Deed
00:57:24 <oerjan> Jafet: who knows what is hiding in the bf derivative category
00:57:49 <int-e> But it's a nice pun.
00:59:43 <oerjan> wat
00:59:51 <oerjan> oh.
01:00:00 * oerjan swats int-e -----###
01:00:17 * oerjan swats int-e again because he missed a spot -----###
01:00:39 * oerjan swats int-e again to be sure he got everything -----###
01:01:09 * oerjan swats int-e again because he thought he saw something moving -----###
01:02:29 <int-e> I think that 5th swat was a tad excessive.
01:02:37 * oerjan swats int-e again because his nose is itching -----###
01:02:41 <elliott> what pun?
01:02:44 <int-e> (note that I carefully avoided the o-word)
01:03:20 <oerjan> elliott: Oerjan's Cleanup Deed hth
01:03:24 <int-e> elliott: I meant the "harmful" that alludes to Dijkstra (not really a pun because the word is unchanged)
01:03:50 <int-e> At least that's my story and I'll stick to it.
01:04:02 * elliott is regrettably also in the "has created a bf + goto language" set
01:04:18 -!- shikhin_ has joined.
01:04:30 * oerjan swats int-e again because he's now claiming to have been intending a different pun, maybe -----###
01:04:57 <int-e> oerjan: Oh no, I was merely *referring* to a different pun.
01:05:41 <oerjan> ah.
01:05:50 <int-e> Sheer modesty, I wouldn't call any of my own puns "good" myself.
01:06:13 <int-e> Though I might say by now that it was pretty effective.
01:06:21 <oerjan> you'd think
01:06:37 -!- GeekDude has changed nick to GeekAfk.
01:06:49 <cluid> hello
01:06:57 <oren> hello
01:07:00 <cluid> Harmful Brainfuck considered harmful
01:07:05 <oerjan> hi cluid
01:07:27 <oren> c++ syntax considered harmful
01:07:40 -!- shikhin has quit (Ping timeout: 265 seconds).
01:07:56 -!- roasted42 has quit (Ping timeout: 256 seconds).
01:08:08 <oren> attempting to mix chinese and japanese and have it make sense considered harmful
01:08:48 <int-e> hmm lion-eating poet in the stone den
01:09:01 <oerjan> what's "considered harmful" in mixed chinese and japanese twhomn
01:09:29 -!- roasted42 has joined.
01:09:46 <int-e> does japanese have anything like that poem?
01:09:57 <oren> int-e: no
01:10:24 <oren> but the "same" word in chinese and japanese means different things
01:10:33 <oerjan> i don't think japanese has gone through a recent period of losing a lot of its phonetic distinctions
01:11:16 <oerjan> _some_, probably
01:11:18 <cluid> Jinese?
01:11:33 <int-e> cluid: did you see the rot13 program?
01:11:36 <cluid> no
01:11:36 -!- scarf has joined.
01:11:47 <int-e> cluid: http://esolangs.org/wiki/Harmful_Brainfuck
01:12:32 <cluid> Cool!!
01:12:33 <int-e> (Sorry, I lost one of your edits when I changed the page earlier, so the phrasing for relative gotos is now different.)
01:12:44 -!- mr45_ has left.
01:14:34 <oren> problem is the japanese stole chinese characters in the middle ages
01:15:16 <oren> (well, maybe not "stole"... borrowed)
01:15:39 -!- nisscrooge has quit (Ping timeout: 245 seconds).
01:16:09 -!- callforjudgement has quit (Ping timeout: 264 seconds).
01:16:48 <oren> and so the meanings for characters that aren't common have grown apart. especially the ones you'd use to write abstract things like "variable", "program", "scope declaration"...
01:17:19 -!- scarf has quit (Read error: Connection reset by peer).
01:17:25 -!- scarf has joined.
01:19:39 <oren> screw it i'll just use japanese semantics for now...
01:23:08 <HackEgo> [wiki] [[Harmful Brainfuck]] http://esolangs.org/w/index.php?diff=41544&oldid=41543 * Oerjan * (+23) A somewhat preliminary edit reintroducing general esolang recommendations
01:26:32 <int-e> of course there had to be a rot13 page.
01:27:09 <cluid> http://sprunge.us/YXfd is going to stay up?
01:27:57 <oerjan> i don't think it is wise to trust pastebins for permanent storage
01:28:05 <oren> wait, so is it believed to be TC or not?
01:28:23 -!- GeekAfk has quit (Quit: {{{}}{{{}}{{}}}{{}}} (www.adiirc.com)).
01:28:24 <int-e> oren: exactly.
01:28:33 <oerjan> oren: i suspect the matter is under research
01:28:41 <oren> i am so confused
01:28:58 <int-e> oren: there's little doubt that it's TC with unbounded cells.
01:29:26 <oerjan> indeed, because it seems you can translate balanced loops
01:29:49 <int-e> and it's hard to imagine that it fails to be TC even with the cells restricted to -128..127.
01:30:00 <int-e> Even though arbitrary I/O is not possible in that range.
01:30:42 <int-e> cluid: I have not seen sprunge delete any pastes yet
01:31:03 -!- roasted42 has quit (Remote host closed the connection).
01:31:17 <elliott> they do
01:31:26 <elliott> in fact every time you upload a paste it deletes one
01:31:51 <oerjan> int-e: here's a chestnut: can you manage to copy a cell from an unknown position to another?
01:32:09 <int-e> oerjan: "unknown"?
01:32:17 <oerjan> not fixed position
01:32:57 <oerjan> the thing is, if you are going to be TC without unbounded cells, you _must_ use code which doesn't know the exact tape position
01:33:40 <int-e> oerjan: I was going to target something with binary cells.
01:33:42 <oerjan> which means you cannot precalculate all offsets and keep them in fixed cells
01:34:07 <int-e> so conditionals would be [set up offsets in next two cells]*>*
01:34:09 <oerjan> for reducing too, you mean
01:34:12 <oerjan> *from
01:34:15 <int-e> yes
01:34:36 <oerjan> well you go right ahead :)
01:34:41 <int-e> but I have not thought it through.
01:35:07 <int-e> I will never be able to copy arbitrary cells.
01:35:08 -!- roasted42 has joined.
01:35:19 <oerjan> i am just thinking that even a simple bf loop like [->+<] can be hard
01:35:35 <int-e> Because the conditional (*) has a value that causes an infinite loop.
01:35:39 <oerjan> and without that, it's hard to move the _offsets_ where you want them.
01:35:53 <oerjan> oh right
01:36:37 <int-e> But with a limited, small range, I see no fundamental reason why it shouldn't work. So TC, with restricted I/O, is entirely plausible.
01:37:11 -!- SirCmpwn has quit (Read error: Connection reset by peer).
01:37:56 <int-e> Actually, unrestricted IO, once the range of cells is large enough so that the whole range (0..255) can be moved to the negative or positive half without overflowing.
01:38:32 <int-e> My idea for a fix was to use 9 bit signed cells, range -256..255, which is *barely* enough to satisfy this criterion.
01:39:00 <int-e> And slightly awkward because you have to use a backward * for the first test.
01:40:01 <Sgeo> Did I just see a Christmas tree in North Korea?
01:40:34 <Sgeo> https://www.youtube.com/watch?v=3HJj85K_7MQ&t=15m40s
01:41:30 <elliott> they have OXYGEN in north korea??
01:41:50 <elliott> I thought kim jong-un outlawed that to spite america!
01:42:11 <int-e> Meh his generals wouldn't allow that.
01:44:15 -!- GeekDude has joined.
01:44:15 <oerjan> elliott: no oxygen is essential for bombs to work, so they're allowed
01:44:18 <oerjan> *it's
01:44:22 <oerjan> *no,
01:44:38 -!- nisscrooge has joined.
01:45:00 <oerjan> it turns out that you can survive solely on elements that are useful for making weapons
01:46:28 <HackEgo> [wiki] [[Harmful Brainfuck]] http://esolangs.org/w/index.php?diff=41545&oldid=41544 * 213.162.68.188 * (+2) more permanent URL
01:49:44 <HackEgo> [wiki] [[Harmful Brainfuck]] http://esolangs.org/w/index.php?diff=41546&oldid=41545 * 213.162.68.188 * (+5) on second thought...
01:56:20 -!- Phantom_Hoover has quit (Remote host closed the connection).
02:03:44 -!- SirCmpwn has joined.
02:07:04 -!- scarf has quit (Read error: Connection reset by peer).
02:07:11 -!- ais523 has joined.
02:07:19 <oren> how much #defining does it take for C to be an esolang?
02:07:26 -!- roasted42 has quit (Ping timeout: 256 seconds).
02:07:43 <cluid> very few going by IOCCC
02:07:54 -!- roasted42 has joined.
02:08:02 <oren> #define zx struct
02:09:54 <int-e> That's not good enough though; IOCCC judges will preprocess and indent the code to see whether that's easier to figure out than the original.
02:10:28 <oren> typedef wz unsigned
02:10:42 <oren> whoops; typedef unsigned wz
02:10:44 <int-e> So one trick is to have macros that make the code explode.
02:12:52 <int-e> http://www.ioccc.org/1998/fanf.c is in that category. (it has to be cpp'd twice, and the result is almost 700k in size)
02:13:43 <cluid> O_OO
02:15:30 <Jafet> Another trick is to make your program not work if it's reindented
02:15:52 <Jafet> (http://www.ioccc.org/1998/schweikh1.c)
02:19:02 <oren> http://snag.gy/XaoyF.jpg
02:23:23 <oerjan> "This code is a wonder; it's a wonder that it compiles."
02:24:09 <oerjan> (replace .c by .hint in any ioccc url)
02:27:21 <oren> So yeah, i'm making a C header to write C code as if it were a prayer to some evil god. (well, more then usual, at any rate)
02:27:39 <int-e> http://www.ioccc.org/1991/buzzard.c was another one that would amusingly be destroyed by indentation.
02:27:46 <int-e> (the clue being this: fopen(x-1?a[1]:"buzzard.c","r"); )
02:28:07 <oren> it reads itself
02:29:09 <elliott> oren: nice irc font
02:30:29 -!- tromp__ has joined.
02:31:06 <cluid> are the latest iocccs out yet?
02:31:51 -!- b_jonas_ has joined.
02:32:15 -!- Melvar` has joined.
02:37:19 -!- heroux_ has joined.
02:40:52 -!- roasted42 has quit (Ping timeout: 256 seconds).
02:41:36 -!- Melvar has quit (Disconnected by services).
02:41:45 -!- Melvar` has changed nick to Melvar.
02:42:40 -!- roasted42 has joined.
02:42:59 <int-e> @metar LOWI
02:42:59 <lambdabot> LOWI 260220Z AUTO VRB02KT 9999 FEW050 BKN060 M02/M02 Q1026
02:43:04 -!- callforjudgement has joined.
02:43:50 <oren> Idea, language where thingshappen in parallel unless otherwise specified
02:45:40 <oren> no not even specified. all ordering happens dring conflict resuolution
02:46:03 -!- ais523 has quit (Ping timeout: 244 seconds).
02:47:08 <oren> we use optimistic scheduler and execute all statements at once. then we check for conflicts and roll back conflicted statements
02:47:54 <oren> other than that there is no ordering available
02:49:20 -!- tromp_ has quit (*.net *.split).
02:49:20 -!- b_jonas has quit (*.net *.split).
02:49:20 -!- heroux has quit (*.net *.split).
02:49:21 -!- blsqbot has quit (*.net *.split).
02:49:26 -!- heroux_ has changed nick to heroux.
02:51:52 <elliott> I think something like that exists
02:53:56 <oerjan> https://esolangs.org/wiki/Whenever maybe?
02:55:19 <cluid> pi calclulus?
02:55:44 <oren> a little like that. but there isn't explicit conditions. instead, if you have statements like SET x = 1; SET y = x; the second statement has to be exeucted afterward, because the first time, it will be rolled back.
02:55:46 <oerjan> it's not described as parallel, but i think parallel with rollback gives equivalent results
02:57:12 <oerjan> oren: ok so it's rolled back because x isn't defined yet?
02:57:38 <oren> it is rolled back because the value of x may have changed while it was being read
02:57:47 <oerjan> ah.
02:57:55 <elliott> how does it know which one to run first if it rolls back, coinflip?
02:58:02 <oerjan> this ought to be easy to implement with haskell's STM
02:58:05 <elliott> since you could also have SET y = x; SET x = 1;
03:00:17 <oren> elliott: it does not need to ollback the x = 1, that operation was fully valid.
03:00:51 <oren> e.g. it left the program in a consistent state
03:01:15 -!- S1 has quit (Quit: S1).
03:01:22 <elliott> oren: so the order of statements in a program matters?
03:01:30 <elliott> that doesn't seem very unordered/"everything in parallel" kinda spirit
03:01:42 <elliott> er, what I mean is
03:01:43 <oren> no, the order does not matter
03:01:47 <elliott> why does it decide it needs to do x = 1 then y = x
03:01:49 <elliott> rather than y = x then x = 1
03:02:04 <oren> because x=1 did not read invalidated data
03:02:15 <elliott> SET x = y; SET y = x
03:02:17 <elliott> what happens?
03:02:27 <oren> the program loops ofrever
03:02:42 <oerjan> darn
03:02:47 <oren> and the y and x are forever invalid
03:02:54 <elliott> um, ok
03:03:02 <elliott> SET x = 1; SET y = 2; SET x = y; SET y = x
03:03:03 <elliott> ?
03:03:03 <oerjan> that doesn't fit with haskell STM :(
03:03:15 <oerjan> (in that, one of the threads always makes progress)
03:03:19 <elliott> I would expect this to end with x=1 y=1 or x=2 y=2 or x=1 y=2 or x=2 y=1 non-deterministically
03:03:26 <elliott> since those are the consistent orderings
03:04:10 <oren> hmm... the program would indeed set x = 1 and y= 2, but then the other statements would always be rolled back
03:04:24 <elliott> I don't see why
03:04:31 <elliott> databases don't lock up like this
03:04:37 <elliott> it seems a bit weird
03:05:01 <oerjan> it's synchronized parallel, like befunge's useless threading
03:05:04 <oren> databases are designed by sane people
03:05:24 -!- roasted42 has quit (Ping timeout: 250 seconds).
03:05:50 <oerjan> oren: what about SET x = 1; SET x = 2; ?
03:06:11 <oren> in that case both orders are equally valid
03:06:24 <elliott> errr
03:06:26 <elliott> but they conflict
03:06:30 <oerjan> but is either rolled back?
03:06:37 <oren> exaclty, lockup!
03:06:47 <elliott> ...ok
03:06:48 <oerjan> bah
03:06:57 <elliott> so in the end you end up with a boring linear, deterministic language? :p
03:07:10 <oerjan> heh
03:07:12 <oren> but one that is hard to prgram in!
03:07:15 <elliott> how would you do branches etc. even
03:07:17 -!- roasted42 has joined.
03:07:33 <elliott> kinda seems like you'd have to add a bunch of stuff to not have everything just be lockup fun
03:08:29 <oren> set up a statement like set x?s=2:t=2; so that it conflicts with one line of statements in one case, or another
03:08:39 <elliott> whaat, you get conditionals
03:08:41 <elliott> *conditionals?
03:08:47 <elliott> "a little like that. but there isn't explicit conditions."
03:08:59 -!- dts|pokeball has quit (Read error: Connection reset by peer).
03:09:10 <oren> you get conditionals but they READ variables and can thus be inconsisted
03:10:11 <oren> also everything in one statement happens at once, so a statement could even conflict with itself in one case but not the other
03:10:20 <oerjan> argh
03:10:55 <oerjan> i'll leave it to you to write down a precise definition of this hth
03:10:58 <elliott> I'm more interested in the language I inferred from your original statements than this one :p
03:11:32 <oren> what did you infer
03:12:14 -!- dts|pokeball has joined.
03:12:42 <elliott> something more like what I was surprised it wasn't, I guess
03:14:22 <oren> so instead of a deterministic scheduler, we have a nondeterministic one?
03:14:32 <elliott> and no conditionals
03:15:57 <oren> we could have a semideterministic one-- deterministic rollback unless all statements must be rolled, in which case it picks one at random to not roll back.
03:18:00 -!- callforjudgement has quit (Read error: Connection reset by peer).
03:18:12 -!- callforjudgement has joined.
03:19:17 <oren> instead of conditionals, we could have something akin to an attempted if function.
03:19:41 <oren> both sides are evaluated, it returns one of them
03:20:12 <cluid> its too hard to do this in bash so im trying in scheme
03:20:22 <cluid> all i wanted to do was recursivly list files and sort by size
03:20:26 <oren> do what?
03:21:10 <cluid> so e.g. find . -type f -exec du -b {} + | sort doesn't work at all
03:21:12 <oren> did you try the find command
03:22:23 <oren> you need to configure the sort command to sort numerically on the right column
03:23:26 <oren> sort -n
03:23:36 <oren> or sort -nr
03:23:58 <cluid> oh thank you!
03:24:03 <cluid> ok this was just me not being good at bash
03:25:20 <oren> cluid: bash is the only $ language that i rarely regret using
03:25:32 <cluid> i mostly always regret it
03:26:03 <oren> maybe i tend to write my regrettable things in PERL
03:27:12 <oren> wow i have a lotof zero-size files
03:30:13 <pikhq> Huh. I didn't realize: wchar_t is permitted to have the same range as char.
03:31:36 <oren> who even uses it?
03:31:51 <pikhq> Windows programmers.
03:32:17 <pikhq> Because Microsoft C only has char strings in legacy encodings.
03:33:16 <oren> Umm... WCHAR
03:33:30 <pikhq> But not usefully so either: the set of legacy encodings they support includes wonky multibyte charsets.
03:33:37 <pikhq> oren: Is #define WCHAR wchar_t.
03:33:59 <pikhq> The secret to sane handling of the Windows API is to ignore its stupid #defines.
03:34:35 <pikhq> "typedef unsigned char BYTE;" is a line they thought was useful.
03:34:46 <oren> it is useful
03:34:52 -!- roasted42 has quit (Ping timeout: 245 seconds).
03:35:01 -!- paul2520 has quit (Remote host closed the connection).
03:35:05 <oren> i would rather type BYTE than unsigned char
03:35:34 <elliott> thankfully uint8_t!
03:35:51 <oren> screw this _t crap
03:35:54 <pikhq> typedef int INT; is another good one..
03:36:30 <pikhq> *blink* *blink* they did what
03:36:36 <pikhq> They have a type LONGLONG.
03:36:42 <pikhq> It claims to be a 64 bit integer.
03:36:47 <pikhq> On 64 bit platforms, it is.
03:36:54 <pikhq> On 32 bit platforms it's a double.
03:37:00 -!- roasted42 has joined.
03:37:26 <oren> pikhq: meh, close enough
03:37:51 <pikhq> Christ, and I thought zlib had stupid typedefs.
03:38:50 <pikhq> Never mind their imposing grand confusion as to what Unicode is upon the world.
03:39:23 <oren> a double can support a 52 bit integer.
03:39:36 <int-e> is uint8_t really so bad?
03:39:43 <oren> so they lost 12 bits, whatever...
03:39:48 <pikhq> An x86 long double can support a 64 bit integer, though.
03:40:14 <int-e> but storing 10 bytes is awkward
03:40:47 <pikhq> For more fun, you can load a 64 bit integer into an x87 register, do arithmetic on it, and then store a 64 bit integer.
03:40:54 <int-e> Also nowadays people prefer to use SSE
03:41:07 <pikhq> Yeah, but SSE doesn't give you long doubles.
03:41:09 <int-e> poof, no extended floats
03:41:25 <int-e> same point, different angle ;)
03:41:27 <elliott> pikhq: x87, rather?
03:41:31 <oren> SSE is actually faster (from my own experiments)
03:41:42 <int-e> elliott: x >= 4
03:41:45 <oren> or is that obvious
03:42:06 <pikhq> elliott: "long double" is an extended float type on x86 in general, regardless of whether or not you use x87 otherwise.
03:42:10 <int-e> (oh and let's forget about the 486SX thing.
03:42:11 <int-e> )
03:42:15 <elliott> ah
03:42:36 <elliott> int-e: the weird thing with {u,}int8_t is that they're usually chars
03:42:45 <pikhq> On x86_64 or MS-compiled x86, it uses x87 instead for that one type.
03:42:46 <elliott> that produces weird results with C++ at least, dunno about C
03:42:53 <elliott> (like, consider printing a uint8_t.)
03:43:12 <pikhq> (MS compilers use SSE for floats otherwise)
03:43:58 <pikhq> elliott: In C you'd use PRIu8 to print it out, so no weird results.
03:44:01 <int-e> elliott: not a problem in C... %c and %d both deal with int arguments.
03:44:13 <oren> elliott: that is what they get for left-shifting a file by a character. iostream is crap
03:44:40 <int-e> pikhq: can you remind me in which header those are defined please?
03:44:40 <elliott> pikhq: right.
03:44:46 <pikhq> int-e: inttypes.h
03:44:46 <elliott> it's a problem with C11's _Generic, maybe!
03:44:49 <int-e> thanks
03:44:58 <pikhq> elliott: It is definitely a problem with _Generic.
03:45:57 * pikhq "loves", BTW, that the only way to get relatively human-understandable behavior out of floats on x86 is to use the obscure float_t and double_t types.
03:47:18 <oren> umm... i really don't know what you mean...
03:47:42 <pikhq> float_t and double_t are the types that computations on float and double result in.
03:48:03 -!- dts|pokeball has quit (Ping timeout: 244 seconds).
03:48:07 <pikhq> On *sane* implementations, 1.0 + 1.0 results in a double. On x86, 1.0 + 1.0 results in a long double.
03:48:15 <pikhq> And if you store it in a double, you get double rounding.
03:48:45 <pikhq> Which results in floating point behaving like magic voodoo.
03:48:50 <oren> why should you care what type the result is?
03:49:12 <pikhq> Because rounding a value twice to different precisions can change the value.
03:49:16 <pikhq> Potentially significantly.
03:49:44 <int-e> 1.0 + 1.0 does not cause any rounding.
03:49:58 <pikhq> int-e: The particular values were bad examples.
03:50:03 <oren> if you don't want rounding problems use fixed point hth
03:50:06 <pikhq> Let's go with 0.1 + 0.1.
03:50:22 <int-e> pikhq: still bad
03:50:46 <int-e> because the literals are converted as doubles, and the addition just increases the exponent by 1.
03:50:49 -!- callforjudgement has quit.
03:51:04 <elliott> oren: floats are designed to have predictable rounding properties...
03:51:09 <int-e> 0.1+0.05 *might* cause trouble
03:51:22 <pikhq> Okay, so it's slightly hard to come up with pithy examples where you'd see the behavior.
03:51:25 <int-e> > 0.1 + 0.05 + 0.05
03:51:27 <oren> not to a decimal system they're not
03:51:27 <lambdabot> 0.2
03:51:35 <pikhq> But when it shows up relevantly you're going to be *really confused*.
03:51:38 <int-e> > 0.2 + 0.03 + 0.04
03:51:40 <lambdabot> 0.27
03:51:43 * int-e shrugs
03:51:57 <elliott> oren: I'm not sure of the relevance...?
03:53:07 <oren> well, one example is storing $59.99 as a float.
03:53:11 <pikhq> Let's do it with decimal then. Let's say we have 9.46. Round it to two places and we get 9.5. Round *that* to one place and we get 10, but if we rounded 9.46 to one place we'd have 9.
03:53:44 <pikhq> Imagine that sort of thing happening anywhere you happen to use a variable in your code, and people's attitudes towards floating point become really easy to understand.
03:54:34 <elliott> oren: sure
03:54:36 <elliott> *sure.
03:54:51 <pikhq> oren: Well yes. Floating point is not a good choice for monetary computation.
03:54:53 -!- roasted42 has quit (Ping timeout: 272 seconds).
03:55:31 <pikhq> It's important to understand the properties a type gives you and whether or not they're useful to you.
03:56:13 <elliott> I mean to be fair float gets used for money a lot even in actual financial systems I think
03:56:34 -!- roasted42 has joined.
03:59:28 <oren> elliott: imo, this is because unlike fortran, C and related languages do not have a inbuilt way to output an integer with a point in a specified place
03:59:38 <elliott> ummm. ok
04:00:01 <oren> like, the user inputs 3.45, and you get 345
04:00:16 <pikhq> That's not all you need for meaningful support of fixed point...
04:00:24 <oren> there is no simple scanf for than
04:00:28 <oren> *that
04:00:30 <int-e> > 47/100 + 41/100 + 12/100
04:00:31 <lambdabot> 0.9999999999999999
04:00:50 <oren> int-e: eaxctly
04:00:58 <pikhq> But yes, it'd be nice to support it.
04:01:16 <pikhq> Fixed point is useful enough it's a real shame it's, well, hard to use. :)
04:01:26 <cluid> > 47/100 + 41/100 + 12/100 :: Rational
04:01:29 <lambdabot> 1 % 1
04:01:53 <oren> it isn't hard to use fixed point in Fortran or COBOL
04:02:47 * pikhq is aware
04:02:59 <pikhq> I should clarify, hard to use in currently popular languages.
04:03:11 -!- drdanmaku has quit.
04:04:26 -!- Solace|tablestuf has joined.
04:04:43 -!- Solace|tablestuf has changed nick to Solace.
04:05:19 <Taneb> pikhq, it's do-able in GHC Haskell
04:05:39 <Solace> Merry Christmas everyone
04:06:05 <pikhq> Solace: Merii kurisumasu.
04:06:15 <oren> But haskell is even more unlike popular languages than Fortran is
04:06:51 <Solace> pikhq: ?
04:07:02 <pikhq> "Merry Christmas" in Japanese.
04:07:07 <pikhq> (no, really)
04:07:10 <oren> he said it in romaji Japanese
04:07:20 <pikhq> Because I'm too lazy to install an IME on here.
04:07:32 <coppro> that looks about right
04:07:57 <oren> ime are good for learning Kanji
04:08:11 <pikhq> I know the kanji. :P
04:09:00 <Solace> Oh
04:09:07 <Solace> Thanks pikhq
04:09:51 <Solace> I got a pokemon game finally
04:10:03 <pikhq> Which?
04:10:04 <Taneb> Solace, me too, but my 3DS is 90 miles away
04:10:19 <pikhq> Taneb: Aaaaw.
04:10:31 <Solace> :0
04:10:38 <Solace> Well then
04:10:41 <Taneb> I got Omega Ruby
04:10:49 <Solace> I got Pokemon X
04:10:58 <pikhq> I think I preferred ORAS to XY.
04:10:59 <oerjan> :k Centi
04:11:00 <lambdabot> *
04:11:04 <coppro> I'm trying to learn to pronounce Japanese
04:11:06 <oerjan> > 3.2 :: Centi
04:11:07 <lambdabot> 3.20
04:11:38 <cluid> Japanese is easy to pronounce
04:11:49 <Taneb> pikhq, XY was enjoyable, but my first Pokemon game was Emerald so I think ORAS will have a nostalgia factor
04:11:53 <oerjan> > pi :: Micro
04:11:55 <lambdabot> No instance for (GHC.Float.Floating Data.Fixed.Micro)
04:11:55 <lambdabot> arising from a use of ‘GHC.Float.pi’
04:11:57 <oerjan> bah
04:11:58 <Solace> how fast is a centi-second inbetween the space of 2 feet (the object is a solid)
04:11:58 <pikhq> Taneb: Oooh, yeah.
04:12:07 <Solace> Well
04:12:08 <pikhq> Taneb: Afraid ORAS didn't have that much nostalgia for me though.
04:12:14 <Solace> X is enjoyable
04:12:17 <pikhq> I finished Emerald earlier this year. :)
04:12:17 <oerjan> > realToFrac pi :: Micro
04:12:18 <lambdabot> 3.141592
04:12:30 <Solace> Comapritably to yellow
04:12:38 <Solace> its a 10
04:12:41 <oren> I have X
04:12:47 <Solace> last pokemon game i played
04:12:50 <coppro> cluid: Japanese is hard to pronounce correctly. Easy to approximate
04:12:53 <oerjan> > realToFrac pi * 100 :: Micro
04:12:54 <lambdabot> 314.159200
04:12:59 <pikhq> To be certain XY is fairly good.
04:13:00 <Solace> It says i have to update a package¿
04:13:03 <pikhq> coppro: Precisely that.
04:13:09 <cluid> I thought each letter mapped directly to one sound
04:13:19 <Solace> Fairy pokemons are pretty eh
04:13:19 <coppro> cluid: Yes. But the sounds are foreign to anglophones
04:13:23 <Solace> weak tbh
04:13:24 <pikhq> cluid: Each kana does, sure.
04:13:31 <oren> coppro: yeah the long vowels and the long consonants are hard
04:13:41 <coppro> It's learning to form them, and then to not switch back to the English ones.
04:13:41 <pikhq> Solace: Counter to dragon type.
04:13:52 <Solace> Really
04:14:07 <Solace> Elite 4 have dragon right?
04:14:11 <pikhq> Yeah. Speaking with a thick accent is easy, speaking with little to no accent is Hard.
04:14:14 <pikhq> Solace: Si.
04:14:21 <oren> dragon are still OP.
04:14:28 <pikhq> Well yes.
04:14:28 <Solace> I hate dragons
04:14:39 <Solace> in a pokemon sense
04:14:47 <oren> I use dragon/steel team usually
04:15:00 <Solace> Fire/Water
04:15:05 <coppro> I'm very glad I learned French when I was younger. I picked up on a lot of phonetic differences which I didn't appreciate until later.
04:15:07 <Solace> Balancing
04:15:09 <Taneb> In X I ended up with a Normal team
04:15:18 <coppro> I was actually surprised to notice that I form 'n' differently in English and French.
04:15:26 <pikhq> I don't have much of a fixed team, kinda just randomly grabbing things as I feel like.
04:15:34 <Solace> I have an ice fossil
04:15:37 <coppro> and knowing more variety makes it easier to work on other sounds
04:15:42 <Taneb> By which I mean I didn't really have a team, I had an overpowered snorlax and 5 other pokemon
04:15:49 <pikhq> Taneb: :D
04:15:59 <pikhq> X I used Blaziken.
04:16:04 <Solace> i just started
04:16:05 -!- TodPunk has quit (Read error: Connection reset by peer).
04:16:09 <pikhq> Mega Blaziken is, uh, OP as heck.
04:16:15 <oren> i restarted recently
04:16:28 -!- TodPunk has joined.
04:16:31 <pikhq> Sometime probably soon I'm gonna be starting on White.
04:16:39 -!- roasted42 has quit (Ping timeout: 265 seconds).
04:16:44 <coppro> I am out of pokemon
04:16:51 <Solace> Pikachu is apparently the only pokemon ive come across that says its species name
04:16:57 <pikhq> Solace: Yep.
04:17:04 <pikhq> Because anime.
04:17:05 <coppro> the extra stuff just keeps getting in the way of actually enjoying the game, I eventually just gave up
04:17:10 <Solace> Damn you anime
04:17:19 <Taneb> Solace, Pikachu's cry used to be very different
04:17:19 <pikhq> coppro: Like?
04:17:29 <coppro> pikhq: promotional pokemon
04:17:33 <pikhq> Ah.
04:17:42 <Solace> I got a diancee tho
04:17:46 <coppro> whatever weird online game they make for $NEWGAME
04:17:55 <Solace> lvl 1
04:18:06 -!- roasted42 has joined.
04:18:10 <coppro> like, I just want to play the games and collect all the dudez
04:18:19 <Taneb> Is it too early to go on my N64...
04:18:20 <pikhq> "Gotta catch 'em all! But wait, you can only really catch 'em all if you live in Japan!"
04:18:21 <coppro> why make it so goddamn hard :(
04:18:22 <oren> So far I just have a lv 22 ivysaur and nothing else worth mentioning
04:18:31 <Solace> Catching 600 of each pokemon?
04:18:38 <coppro> pikhq: well, nowadays, it's more like "but only if you're paying attention this week! trololol"
04:18:51 <coppro> but they keep adding more of them every generation
04:18:51 <Taneb> Solace, catching EVERY SINGLE DIFFERENT SPINDA DESIGN
04:18:53 <pikhq> coppro: If you don't care about the event-only legendaries it's a mere 4 games you need now.
04:18:54 <oren> i just like beating my friends teams
04:19:21 <coppro> pikhq: X/Y, OR/AS, HG/SS, D/P?
04:19:26 <pikhq> X/Y + OR/AS.
04:19:34 <Solace> I like the shinies
04:19:35 <coppro> no wait, that misses gen 5
04:19:48 <pikhq> Yes, they're all available in gen 6.
04:19:51 <Solace> I have a shiny floette and its amazing tbh
04:20:02 <Taneb> On X I have a shiny Mr Mime
04:20:05 <Taneb> It is terrifying
04:20:06 <Solace> Also animation styles are good thats an added like
04:20:08 <oren> i didn't play anything between sapphire and X
04:20:24 <Solace> Guys the rock gym
04:20:27 <pikhq> oren: Likewise, though emerald and X for me.
04:20:30 <Solace> its to much for me
04:20:34 <coppro> HG/SS were pretty fantastic
04:20:42 <Solace> Yes
04:20:44 <coppro> but that was to be expected, they were remakes of the best games in the series
04:20:48 <oren> catch a green monkey dude
04:20:53 <pikhq> I bought Pearl, HG, and White after finishing Y.
04:21:01 <pikhq> HG was fantastic.
04:21:10 -!- drdanmaku has joined.
04:21:40 <coppro> also I've become addicted to riichi
04:22:34 <pikhq> ORAS is fairly delightful though, I must say.
04:22:47 <pikhq> And hey, it's the first time they made an event legendary *not* event-only.
04:23:10 <pikhq> Wish they'd do that with the rest.
04:24:20 <oren> death metal goes well with steel/ghost type
04:24:37 <Solace> How do you split a string by a delimiter functionally?
04:25:18 <oren> return a list
04:25:37 <coppro> pikhq: oh really? which/how?
04:25:38 <Solace> Thank
04:25:52 <cluid> Solace, in haskell?
04:25:55 <pikhq> coppro: Deoxys. Now it's just available in the post-game little storyline.
04:26:00 <coppro> ah, cool
04:26:01 <Solace> yes
04:26:08 <pikhq> You ride Rayquaza into space and encounter Deoxys!
04:26:12 <coppro> actually that's sweet, since Deoxys is one of the best event-only legendaries
04:26:21 <pikhq> Yeah.
04:26:26 <Solace> pikhq: when is this?!
04:26:32 <cluid> you could use parsec
04:26:35 <pikhq> Solace: Right after the Elite Four.
04:26:45 <Solace> :/
04:26:54 <Solace> God its gettin really fancy
04:28:13 <pikhq> So long story short I have a Deoxys in a Premiere Ball. :)
04:28:23 <Solace> welp
04:28:31 <Solace> time to go heal
04:30:00 <coppro> pikhq: nice :)
04:31:40 <HackEgo> [wiki] [[Harmful Brainfuck]] http://esolangs.org/w/index.php?diff=41547&oldid=41546 * 213.162.68.188 * (+0) /* External resources */ using 9 bit cells now
04:32:18 <oren> caught an axew
04:34:06 <coppro> pikhq: have you played riichi?
04:37:46 -!- roasted42 has quit (Ping timeout: 255 seconds).
04:38:02 <Solace> who is roasted42?
04:39:42 -!- roasted42 has joined.
04:43:27 <oren> a cute lil axew named killer, who will be my guillotine machine
04:45:51 <oerjan> Solace: i don't remember em talking
04:46:04 <Solace> i dont name my pokemons
04:46:08 <oerjan> seems to be from south africa
04:46:55 <Solace> i went to Spain once
04:47:02 <Solace> very hot
04:47:30 <oerjan> plausible
04:48:03 <oerjan> @metar ENVA
04:48:12 <oerjan> now what
04:48:17 <lambdabot> ENVA 260420Z 30013KT 9999 VCSH SCT028 BKN045 M00/M05 Q1015 RMK WIND 670FT 31019KT
04:48:27 <oerjan> cold, but not that cold
04:48:46 <Solace> to hot for me
04:48:55 <coppro> pikhq: also do you know where I can get good anime with romaji subtitles?
04:49:00 * oerjan was referring to the metar forecast
04:49:08 <oerjan> er not forecast
04:49:12 <oerjan> report
04:49:17 <Solace> wasnt refering to that
04:49:21 <Solace> but ok
04:49:26 <Solace> also what is that
04:49:30 <oren> coppro: not much market for that
04:49:42 <oerjan> Solace: airport style weather reporting
04:49:46 <coppro> oren: I know
04:49:48 <Solace> ah
04:49:58 <oerjan> the M00/ means it's just below freezing
04:50:02 -!- cluid has quit (Remote host closed the connection).
04:50:12 <Solace> :0
04:50:31 <oerjan> that's not in spain, it's in norway where i am
04:50:47 <Solace> Norway!
04:50:56 <Solace> Yay ive lived there before
04:51:05 <oren> coppro: try watching japanese childrens shows
04:51:13 <Solace> 1 year there is nice
04:51:21 <oren> like doraemon or kogepan
04:51:43 <oerjan> @metar LEMG
04:51:44 <lambdabot> LEMG 260430Z 30008KT CAVOK 06/05 Q1030 NOSIG
04:51:49 <oerjan> oops
04:52:12 <oerjan> that's málaga in spain. only 6 degrees celsius
04:52:22 <oren> @metar YYZ
04:52:43 <Solace> you remind me of my father somehow oerjan
04:52:44 <oren> hmmm it's not airport codes?
04:52:51 <oerjan> OKAY
04:53:01 <oerjan> oren: four-letter ones
04:53:07 <oerjan> there are two systems
04:53:11 <Solace> lel
04:53:32 <Solace> not to be creepy
04:53:37 <oerjan> this is ICAO
04:53:39 <oren> @metar CYYZ
04:53:39 <lambdabot> CYYZ 260400Z 25011G18KT 15SM OVC030 03/M02 A3009 RMK SC8 SLP195
04:54:16 <pikhq> coppro: I have not played riichi, and I dunno about romaji subtitled anime.
04:54:29 <pikhq> oren's suggestions make sense though.
04:55:01 <oren> I learned much of my reading from doraemon manga
04:55:37 <coppro> I'm not looking for reading right now, though
04:56:17 <Solace> kids with there anime and mangos
04:56:32 <oren> animu and mango
04:56:50 <coppro> also I suggest not playing riichi. it's addictive
04:58:44 <oren> anyway coppro try this: https://www.youtube.com/watch?v=BgEQiXBGHDg
04:59:24 <Solace> team flare is very fashionable
04:59:44 <oren> flare = flair
05:00:23 <Solace> says team flare
05:00:40 <Solace> it is now tommorow wherever this webclient is being hosted
05:01:45 -!- roasted42 has quit (Ping timeout: 264 seconds).
05:03:19 -!- roasted42 has joined.
05:11:04 <coppro> oren: that's not romaji
05:11:06 -!- GeekDude has quit (Quit: {{{}}{{{}}{{}}}{{}}} (www.adiirc.com)).
05:12:36 <oren> i don't think what you are looking for exists... better to just focus on hiragana, romaji don't accurately represent the sounds anyway
05:12:58 <Solace> oh cod
05:13:23 -!- shikhin_ has quit (Ping timeout: 240 seconds).
05:14:35 <coppro> oren: it represents them accurately enough to help me learn to listen
05:17:29 <oren> hmm, romaji transscripts might exist for drama CDs.
05:17:51 <coppro> apparently there exists a site which will transliterate sub files
05:19:09 -!- zzo38 has joined.
05:51:32 -!- roasted42 has quit (Ping timeout: 244 seconds).
05:53:23 -!- roasted42 has joined.
06:11:23 -!- drdanmaku has quit (Quit: ,).
06:27:54 -!- dianne has quit (Quit: brb!).
06:31:32 -!- dianne has joined.
06:47:49 -!- roasted42 has quit (Ping timeout: 258 seconds).
06:48:32 -!- roasted42 has joined.
06:57:34 <zzo38> Do you know of any Lisp-like system that does something like the (~X ~Y (CONSTANT X 42)) stuff I have suggested? (This example is useless of course (for two reasons); I simply demonstrate an example code.)
07:00:12 <zzo38> Actually, I can have one more idea too where for example (~W ~~X ~Y ~~Z whatever) is a shortcut for (~W ~X ~Y ~Z (NEWNAMES (X Z) whatever)).
07:03:50 -!- adu has joined.
07:09:10 -!- Patashu has quit (Disconnected by services).
07:09:11 -!- Patashu_ has joined.
07:12:22 -!- Patashu_ has quit (Remote host closed the connection).
07:12:32 -!- Patashu has joined.
07:28:26 -!- roasted42 has quit (Ping timeout: 250 seconds).
07:30:47 -!- roasted42 has joined.
07:58:12 -!- HackEgo has quit (Ping timeout: 256 seconds).
08:00:09 -!- Solace has quit (Quit: Connection closed for inactivity).
08:08:11 -!- idris-bot has quit (Quit: Terminated).
08:08:36 -!- Melvar has quit (Quit: system upgrade).
08:20:15 -!- roasted42 has quit (Ping timeout: 265 seconds).
08:22:45 <Taneb> It's really foggy here...
08:23:31 <oerjan> well it's england, what do you expect hth
08:24:33 <Taneb> Rain
08:24:39 <Taneb> Slet
08:24:44 <oerjan> well that's the other option
08:24:47 <J_Arcane> zzo38: racket has 'define-values', which can match multiple assignments to values.
08:24:48 <Taneb> (which is like sleet but doesn't last as long)
08:24:52 <oerjan> ah
08:25:00 <Taneb> (and totally not a typo)
08:25:04 <oerjan> i know
08:25:36 <zzo38> J_Arcane: I do not understand, nor understand what it has to do with the things like I have mentioned.
08:25:53 <oerjan> trondheim uncharacteristically has snow
08:26:19 <J_Arcane> http://docs.racket-lang.org/reference/define.html#%28form._%28%28quote._~23~25kernel%29._define-values%29%29
08:26:20 <oerjan> you know, "uncharacteristically" is a pretty long word for being english
08:26:55 <Taneb> oerjan, it's uncharacteristically long
08:28:01 <elliott> J_Arcane: values is actually in normal scheme too
08:30:28 <oerjan> if you do (let ((x '())) (define x 42)) in scheme will the x with 42 be visible outside?
08:30:38 <oerjan> otherwise, that seems like a way to implement it
08:30:51 <oerjan> (via a macro)
08:35:05 <oerjan> hm i guess the problem is if you also have (define y 43) in there and you want _that_ to be visible
08:35:20 <oerjan> still not sure what actual scheme does
08:44:59 <Taneb> I'm gonna try to enter IOCCC in 2015
08:45:37 <oerjan> follow your dreams, man!
08:47:15 -!- adu has quit (Quit: adu).
08:51:12 <Taneb> Did anyone in here enter in 2013 or 14?
08:51:43 <elliott> yes
08:51:46 <elliott> though I forget exactly who
08:51:53 <elliott> do you have an idea for a program?
08:51:58 <Taneb> elliott, yes
08:52:11 <elliott> are you willing to divulge it? :p
08:52:27 <Taneb> No
08:52:32 <oerjan> don't listen to elliott he'll steal your idea!
08:52:34 <elliott> :(
08:52:37 <elliott> no I won't
08:52:39 <elliott> I never do anything
08:52:44 <oerjan> that's what he would say
08:56:18 <J_Arcane> oerjan: scheme/racket is lexically scoped. vars inside of let aren't visible to the outside. It does have closures though, so there's ways around that.
08:56:42 <J_Arcane> if I wanted an explicitly constant value though, there's define-syntax-values.
08:57:08 <oerjan> J_Arcane: this is in the context of zzo38's question, mind you
08:57:18 <J_Arcane> Then you can do (define-syntax-values (x y z) (43 2 0)) and they'd be macros, not vars, and thus immutable.
08:57:35 <oerjan> the question isn't how to define (constant ...)
08:58:19 <J_Arcane> fair enough. without more detail I'm not sure I really followed what he was after then.
08:58:55 <oerjan> it's how to construct something like his (~x ...) which prevents definitions of x inside ... from escaping but iiuc _not_ definitions of other identifiers
08:59:05 <oerjan> that's my understanding
09:01:04 <elliott> oerjan:
09:01:04 <elliott> scheme@(guile-user)> (let ((x 1)) (define y 2))
09:01:04 <elliott> While compiling expression:
09:01:04 <elliott> ERROR: Syntax error:
09:01:04 <elliott> unknown file:1:0: no expressions in body in form (let ((x 1)) (define y 2))
09:01:08 <elliott> hth.
09:01:20 <oerjan> fnord.
09:01:21 <elliott> Chicken accepts it but then y is unbound.
09:01:33 <elliott> scheme@(guile-user)> (let ((x 1)) (define y 2) 123)
09:01:33 <elliott> $1 = 123
09:01:33 <elliott> scheme@(guile-user)> y
09:01:33 <elliott> ;;; <unknown-location>: warning: possibly unbound variable `y'
09:02:11 <Taneb> tromp entered in 2012 and Gregor in 2011...
09:03:35 <elliott> well, 2012 is basically 2013.
09:04:36 <oerjan> well i don't recognize the names of any of the winners from people here
09:04:40 <J_Arcane> oerjan: well, but Scheme and Racket are lexically scoped such that that's already what happens. I can do (begin (define x 42) (let ((x 13)) x) x), and I'll get 13 then 42.
09:05:21 <oerjan> J_Arcane: um the point is to have the define visible _outside_ the begin
09:08:00 <J_Arcane> oerjan: Ahh. OK. Well, I don't think that's possible in Scheme, but in CL you could do it I think.
09:08:15 <oerjan> ah
09:08:25 <oerjan> well zzo38 was asking if any lisp had it
09:09:00 <oerjan> *lisp-like
09:09:03 <J_Arcane> CL has syntax for both lexical and dynamically scoped variables.
09:09:14 <J_Arcane> Because of course it does.
09:09:18 <oerjan> um
09:09:24 <J_Arcane> http://stackoverflow.com/questions/7787683/common-lisp-scoping-dynamic-vs-lexical
09:09:38 <oerjan> i'm not at all sure that this answers the question.
09:11:14 <J_Arcane> oerjan: OK, to put another way: depending on which assignment command you used, yes, you can define a variable in CL in a local context that would still be available outside of it.
09:13:34 <oerjan> i don't interpret the question as asking for dynamic scoping, anyway
09:26:10 -!- roasted42 has joined.
09:34:56 -!- oerjan has quit (Quit: Etc.).
09:39:41 <zzo38> Also, about "it's how to construct something like his (~x ...) which prevents definitions of x inside ..." it isn't only quite that but also that anything inside that refers to this "x" no longer knows anything about any other "x", as if any "x" inside this block is a different token than the "x" outside of the block; a token which is guaranteed not to occur outside.
09:42:16 <J_Arcane> Well, but that's where I'm confused: that's just how lexical scoping works.
10:11:56 -!- roasted42 has quit (Ping timeout: 244 seconds).
10:20:50 -!- roasted42 has joined.
10:22:09 -!- Melvar has joined.
10:22:26 <oren> is there any reason why a lexical scope can't simply be an object, whose members are the lexical variables and with one anonymous method, that is, the enclosed code?
10:24:05 <oren> this would allow the scope to be assigned to a variable and its variables would thus be available after the scope is over.
10:26:07 <J_Arcane> oren: I think Racket can actually do that. Probably. The depths of Racket's macro system are an abyss in which all sanity is lost.
10:28:31 <oren> insanity is a necessary hazard to our work
10:29:07 <roasted42> nice
10:30:41 -!- idris-bot has joined.
10:35:27 -!- supay has changed nick to supay_afk.
10:50:17 -!- roasted42 has quit (Ping timeout: 240 seconds).
10:59:32 -!- roasted42 has joined.
11:06:11 -!- roasted42 has quit (Ping timeout: 258 seconds).
11:13:50 -!- roasted42 has joined.
11:22:50 -!- roasted42 has quit (Changing host).
11:22:50 -!- roasted42 has joined.
11:22:50 -!- roasted42 has changed nick to TheM4ch1n3.
11:27:52 -!- TheM4ch1n3 has quit (Ping timeout: 256 seconds).
11:29:20 -!- roasted42 has joined.
12:04:25 -!- roasted42 has quit (Ping timeout: 252 seconds).
12:06:11 -!- roasted42 has joined.
12:17:44 -!- roasted42 has quit (Ping timeout: 245 seconds).
12:22:19 -!- Patashu has quit (Ping timeout: 245 seconds).
12:26:17 -!- roasted42 has joined.
12:32:03 -!- roasted42 has quit (Ping timeout: 258 seconds).
12:32:37 -!- roasted42 has joined.
12:38:28 -!- asklepion has joined.
12:38:57 -!- roasted42 has quit (Ping timeout: 264 seconds).
12:39:58 -!- roasted42 has joined.
12:43:28 -!- SopaXorzTaker has joined.
12:43:28 -!- SopaXorzTaker has quit (Changing host).
12:43:28 -!- SopaXorzTaker has joined.
12:45:15 -!- SopaXorzTaker has changed nick to XorzSopasmas.
12:45:30 -!- roasted42 has quit (Ping timeout: 256 seconds).
12:48:14 -!- PinealGlandOptic has quit (Ping timeout: 250 seconds).
12:54:17 -!- roasted42 has joined.
12:59:26 -!- roasted43 has joined.
12:59:33 -!- roasted42 has quit (Ping timeout: 272 seconds).
13:00:59 -!- PinealGlandOptic has joined.
13:09:49 -!- roasted43 has quit (Ping timeout: 245 seconds).
13:10:04 -!- Phantom_Hoover has joined.
13:10:13 -!- Phantom_Hoover has quit (Changing host).
13:10:13 -!- Phantom_Hoover has joined.
13:12:57 -!- roasted42 has joined.
13:13:55 -!- XorzSopasmas has quit (Ping timeout: 255 seconds).
13:14:28 -!- supay_afk has changed nick to supay.
13:17:35 -!- XorzSopasmas has joined.
13:28:24 -!- roasted42 has quit (Ping timeout: 258 seconds).
13:29:41 -!- roasted42 has joined.
14:03:17 -!- roasted42 has quit (Ping timeout: 258 seconds).
15:22:04 -!- XorzSopasmas has changed nick to SopaXorzTaker.
15:22:21 -!- SopaXorzTaker has quit (Quit: Leaving).
15:22:40 -!- SopaXorzTaker has joined.
15:22:40 -!- SopaXorzTaker has quit (Changing host).
15:22:40 -!- SopaXorzTaker has joined.
15:46:06 -!- sebbu2 has changed nick to sebbu.
16:01:35 -!- drdanmaku has joined.
16:12:31 -!- shikhin has joined.
16:51:03 -!- ais523 has joined.
16:53:05 -!- shikhin has changed nick to sortiecat.
16:53:13 -!- sortiecat has quit (Disconnected by services).
16:53:44 -!- shikhin has joined.
17:05:48 -!- ais523 has quit (Read error: Connection reset by peer).
17:06:02 -!- ais523 has joined.
17:20:40 <Jafet> How devious; implementing eode efficiently requires nondeterminism
17:26:49 -!- ais523 has quit.
17:27:02 -!- ais523 has joined.
17:45:47 -!- oren has quit (Ping timeout: 252 seconds).
17:48:43 -!- Phantom_Hoover has quit (Ping timeout: 252 seconds).
18:06:58 -!- S1 has joined.
18:07:33 -!- asklepion has left.
18:23:55 -!- vanila has joined.
18:40:03 <tromp__> saim3bzd
18:54:35 -!- Phantom_Hoover has joined.
19:04:56 -!- shikhin_ has joined.
19:05:18 -!- SopaXorzTaker has quit (Quit: Leaving).
19:07:44 -!- shikhin has quit (Ping timeout: 245 seconds).
19:11:50 -!- dts|pokeball has joined.
19:40:11 -!- arjanb has joined.
20:06:37 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
20:13:16 -!- S1 has quit (Quit: S1).
20:19:09 -!- ais523 has quit (Read error: Connection reset by peer).
20:19:13 -!- callforjudgement has joined.
20:19:28 -!- callforjudgement has quit (Changing host).
20:19:28 -!- callforjudgement has joined.
20:21:41 -!- callforjudgement has quit (Read error: Connection reset by peer).
20:22:00 -!- callforjudgement has joined.
20:22:50 -!- callforjudgement has quit (Read error: Connection reset by peer).
20:23:02 -!- callforjudgement has joined.
20:39:07 -!- scarf has joined.
20:39:11 -!- callforjudgement has quit (Remote host closed the connection).
20:54:28 -!- InvalidCo has quit (Ping timeout: 245 seconds).
20:54:47 -!- InvalidCo has joined.
21:02:25 -!- InvalidCo has quit (Ping timeout: 244 seconds).
21:18:26 -!- ais523 has joined.
21:18:31 -!- scarf has quit (Read error: Connection reset by peer).
21:24:33 -!- InvalidCo has joined.
22:08:58 -!- callforjudgement has joined.
22:11:37 -!- ais523 has quit (Ping timeout: 240 seconds).
22:20:26 -!- vanila has quit (Quit: Leaving).
22:32:10 -!- Patashu has joined.
23:05:12 -!- Phantom_Hoover has joined.
23:14:35 -!- dts|pokeball has quit (Read error: Connection reset by peer).
23:24:38 -!- dts|pokeball has joined.
23:42:34 <int-e> Oh another reminder of how much of GG's greatness is due to Cheyenne Wright. This wreckage will be so much nicer in color.
23:43:01 <coppro> GG?
23:43:11 <int-e> Girl Genius
23:46:03 -!- callforjudgement has quit (Read error: Connection reset by peer).
23:46:10 -!- callforjudgement has joined.
23:46:11 -!- oerjan has joined.
23:52:51 <oerjan> <J_Arcane> Well, but that's where I'm confused: that's just how lexical scoping works. <-- the problem with lexical scoping is that it would also hide definitions of _other_ tokens than x from the outside.
23:53:11 <oerjan> @tell J_Arcane <J_Arcane> Well, but that's where I'm confused: that's just how lexical scoping works. <-- the problem with lexical scoping is that it would also hide definitions of _other_ tokens than x from the outside.
23:53:12 <lambdabot> Consider it noted.
23:54:23 <oerjan> @tell J_Arcane iiuc zzo38 wants (~x (define y 3)) to have the same meaning as (define y 3).
23:54:23 <lambdabot> Consider it noted.
23:54:46 <oerjan> zzo38: am i correct?
23:54:49 <zzo38> Yes
23:56:10 <oerjan> zzo38: i am wondering if you could use the hygiene system of scheme to implement this as a macro (~ x ...)
23:56:37 <oerjan> although i don't understand it well enough to say
23:56:44 <zzo38> Maybe, but I don't know if something that reads the list without executing it then might see the "x"?
23:57:13 <oerjan> oh you want it to be on the reader level?
23:57:56 <zzo38> Well, you could have a way to define the level too, but either way it cannot see it.
23:58:00 <oerjan> in that case, what would (~x 'x) return?
23:58:21 <oerjan> some gensymmed token, or an x token
23:59:06 <zzo38> A token with the name "x" but which is still considered distinct from any other token with the name "x", I suppose.
23:59:11 <oerjan> i think i've seen a gensym that allows you to create a new symbol like that
23:59:29 <oerjan> don't remember if it was standard
←2014-12-25 2014-12-26 2014-12-27→ ↑2014 ↑all