←2015-09-18 2015-09-19 2015-09-20→ ↑2015 ↑all
00:00:29 -!- hppavilion[2] has changed nick to hppavilion[1].
00:00:54 <hppavilion[1]> Hellu
00:02:30 <hppavilion[1]> I got a Stare AST with a hand-crank executer working :)
00:05:43 <oerjan> it's obviously japanese: rapotoro no zono, which confusingly means it _is_ a raptor zone hth
00:10:13 -!- MDude has joined.
00:10:48 <oerjan> i'm sure pikhq can confirm
00:11:47 <pikhq> That is incredibly obviously JApanese.
00:12:38 <boily> pikhq: 確認しらないでください
00:17:20 <oerjan> i'm sorry, i was slightly incorrect, it's actually raputoru no zōn, or ラプトル のゾーン
00:18:09 -!- APic has joined.
00:18:26 <oerjan> *-
00:24:40 <hppavilion[1]> :-
00:25:15 <hppavilion[1]> x :- y, z
00:25:58 <boily> hppavellon[1]. this is prolog.
00:26:26 <coppro> shachaf: I haven't a clue
00:26:49 <boily> fungot: hppavilion[1] is doing weird logical things.
00:26:49 <fungot> boily: ' ' for every y". that's why i rarely use it. also, whatever the student doesn’t have to provide evidence. please quote the title of the 2008 south ossetia war talk page is archived, then it can be still viewed on fnord keith binney user:keith binneykeith binney ( user talk:keith binneytalk) 06:15, 15 july 2007 ( utc)
00:27:33 <hppavilion[1]> boily: I /am/ buying a copy of To Mock a Mockingbird for kindle
00:27:46 <boily> is it expensive?
00:28:08 <hppavilion[1]> $13
00:28:25 <hppavilion[1]> Which is actually the most expensive one available (paperback is $7.39)
00:28:33 <hppavilion[1]> If I were to run a store
00:28:41 <hppavilion[1]> I would charge complex dollars
00:30:41 <boily> I need to curb my book acquisition. my backlog growth rate is exceeding my reading decay rate...
00:30:46 <hppavilion[1]> "How much is this?" "That would be $17+2i"
00:30:55 <hppavilion[1]> True fact.
00:31:03 <boily> (says the guy who just bought the current Humble Book Bundle right now.)
00:31:31 -!- Patashu has quit (Remote host closed the connection).
00:31:33 <boily> would you rather pay 3 + 1i$, or 5 - 3i$?
00:31:49 -!- Patashu has joined.
00:32:49 <zzo38> I don't know
00:33:10 <hppavilion[1]> boily: 3+1i, as the 1i can just be dropped
00:33:17 <hppavilion[1]> 3<5
00:33:26 <hppavilion[1]> BOOLEAN DOLLARS
00:33:36 <hppavilion[1]> "That would be $True"
00:33:45 <hppavilion[1]> COMPLEX BOOLEAN DOLLARS
00:33:55 <hppavilion[1]> x xor-with-carry y
00:33:59 <hppavilion[1]> AKA addition
00:35:07 <boily> $True doesn't typecheck with my brain.
00:35:45 <hppavilion[1]> boily: Everyone knows the American Economy is weak/dynamic typed
00:35:53 <fizzie> I was looking at a thing related to Euston station in Maps, and due to an attack of sillines typed "euston, we have a problem" -- #1 is reasonable, but wasn't expecting #2: https://googledrive.com/host/0B4J9OAzXNfZAYjQxai11SE1fdm8
00:36:09 <fizzie> At least it's trying to help.
00:36:39 <myname> obviously 3+1i$ is much less than 5-3i$
00:36:56 <hppavilion[1]> myname: $2 less, to be exact
00:37:20 <boily> Mornington Crescent!
00:37:22 <myname> well, you could use the norm
00:37:39 <hppavilion[1]> myname: What's the norm again? Algebra II student here
00:37:55 <oerjan> obviously real and imaginary parts represent two currencies that are _not_ completely interconvertible hth
00:38:06 <boily> myname: yes, but that'd imply a loss of information by mapping back to Q from C.
00:38:23 <hppavilion[1]> 15_Truei
00:38:25 <myname> boily: so?
00:38:27 <hppavilion[1]> s/_/_/
00:38:36 <hppavilion[1]> *s/_/+/
00:39:08 <boily> myname: then it becomes unconfusing money, which isn't interesting.
00:39:20 <myname> ah
00:39:32 <boily> hppavilion[1]: purely for statistical purposes, how öld are you?
00:40:15 <hppavilion[1]> boily: ...
00:40:20 <hppavilion[1]> STRANGER DANGER
00:40:21 <hppavilion[1]> 14
00:40:32 <hppavilion[1]> Though I'm not a very good datapoint
00:40:59 <oerjan> although capitalism probably implies there will be _some_ conversion price.
00:41:36 <boily> I'm not stranger.
00:42:08 <boily> we're at the vanguard of a booming market of complex money changers.
00:47:53 <hppavilion[1]> Then some douchebag introduces Sedenions to the world of money
00:47:55 <hppavilion[1]> Hey guys
00:48:03 <hppavilion[1]> What if we started using Sedenion money?
00:50:25 <boily> that is something I won't be put with at up.
00:51:01 -!- boily has quit (Quit: FILIBUSTER CHICKEN).
01:00:21 <Phantom_Hoover> hppavilion[1], sedenions are too useless even for mathematicians, so... not much
01:00:47 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
01:01:21 <oerjan> *ACHOO*
01:02:36 <zzo38> What kind of thing can use units of square money? (I don't mean money which is shaped like square)
01:03:46 <hppavilion[1]> Yay
01:03:51 <hppavilion[1]> Just bought TMAMB
01:10:59 <zzo38> Which is what?
01:11:03 -!- mauris has quit (Quit: Leaving).
01:11:17 -!- doesthiswork has joined.
01:11:42 <coppro> The Man And My Bucket
01:21:15 <hppavilion[1]> THE MAN AND MAH BUKKIT
01:21:18 <hppavilion[1]> No
01:21:24 <hppavilion[1]> To Mock a Mockingbird
01:22:31 <doesthiswork> I didn't really like that book
01:23:25 <hppavilion[1]> You're a bad person
01:23:27 <hppavilion[1]> xD
01:24:30 -!- MDude has changed nick to MDream.
01:25:01 <Sgeo> Apparently iOS 9 is adding a back button. And there goes one of the reasons I'm sometimes tempted to look at iPhones. Unless maybe iOS back is implemented better than Android?
01:25:39 <myname> what's wrong with androids back button?
01:26:05 <Sgeo> It's total nonsense.
01:26:12 <myname> how so?
01:26:26 <Sgeo> It doesn't go back to the last thing you were doing, sometimes it will go back in the application you just switched to via notification
01:26:58 <myname> it almost always does what i expect it to do
01:27:17 <myname> including going back to the last thing i was doing
01:27:32 <doesthiswork> It felt as if I was being teased because it talked about them as black boxes, while my thought was "what is the point of a box if not to look inside". I'm probably a descendant of pandora.
01:28:55 <myname> if it does stupid things it is because of apps that don't use the default action paradigm
01:29:04 <myname> skype for example sucks at that manner
01:29:17 <Sgeo> myname, YouTube is a Google app
01:29:35 <Sgeo> As is Gmail
01:29:42 <myname> what's wrong with youtubes back button behaviour?
01:29:48 <Sgeo> I think it's the default action paradigm sucks
01:29:57 <myname> it goes back your video watching history perfectly fine
01:30:14 <myname> which is exactly what i expect
01:30:14 <Sgeo> WHat if you wanted to go to what you were doing before, not within the YouTube app?
01:30:59 <Sgeo> "For example, when a notification takes the user to an activity deep in your app hierarchy, you should add activities into your task's back stack so that pressing Back navigates up the app hierarchy instead of exiting the app."
01:31:06 <myname> it should do that if you are at the start of the youtube history
01:31:27 -!- idris-bot has quit (Ping timeout: 255 seconds).
01:31:30 <hppavilion[1]> <コ:彡
01:31:30 <Sgeo> myname, but if a notification popped up linking me to a video, I don't want to go back to youtube history if I'm done with the video
01:31:39 <Sgeo> etc. with Gmail
01:31:53 <myname> it doesn't, because there is no history then
01:32:32 <myname> if i open any link in connectbot in any app and press back there i will get back to connectbot
01:32:32 -!- Melvar` has joined.
01:32:40 <myname> perfectly fine
01:33:53 -!- Melvar has quit (Ping timeout: 265 seconds).
01:34:07 <myname> it even works perfectly fine with multiwindow here
01:36:36 <Sgeo> I am now in reddit is fun. I get a notification about a new email. I open it, read the email. I press back, and it goes to my inbox (?!). I press back again, and I finally get back to reddit is fun
01:40:03 -!- Melvar`` has joined.
01:41:59 -!- Melvar` has quit (Ping timeout: 250 seconds).
01:44:14 -!- Melvar has joined.
01:46:27 -!- Melvar`` has quit (Ping timeout: 265 seconds).
01:47:54 -!- mihow has quit (Quit: mihow).
01:48:51 -!- Melvar` has joined.
01:50:26 -!- Melvar has quit (Ping timeout: 240 seconds).
02:44:57 -!- bb010g has joined.
02:48:18 -!- Patashu has quit (Remote host closed the connection).
02:48:40 -!- Patashu has joined.
02:56:19 -!- hppavilion[1] has quit (Ping timeout: 240 seconds).
03:00:45 -!- oerjan has quit (Quit: Niiiiite).
03:07:24 -!- doesthiswork has quit (Quit: Leaving.).
03:13:39 -!- bender| has joined.
03:30:58 -!- hppavilion[1] has joined.
03:32:38 <hppavilion[1]> What does the.... [ combinator do?
03:34:33 <zzo38> I don't know, is there a combinator like that?
03:37:55 <shachaf> coppro: Why do you have all these nicks?
03:38:05 <coppro> shachaf: why not?
03:39:33 -!- oren_ has changed nick to \oren\.
03:40:14 -!- \oren\ has changed nick to oren.
03:40:19 -!- oren has changed nick to \oren\.
03:52:29 <zzo38> Are you good at Dungeons&Dragons game?
03:55:39 -!- hppavilion[1] has quit (Ping timeout: 240 seconds).
04:01:49 <Sgeo> "The _first round_ of getting my data off my dead harddrive will take around 3.5 days..."
04:02:12 <Sgeo> I... don't know where I got that number from. At least I have a date for when I started researching this
04:02:34 <Sgeo> I don't know why it would take that long. Nor where that HD went....
04:03:00 <zzo38> What is the capacity of the dead harddrive?
04:04:29 <zzo38> In my case it was the CPU that stopped working, rather than the harddrive, which still works and is now in a bag to label it and protect it from dust; I remove it when I need to copy some of the files from it
04:04:48 <shachaf> zzo38: I haven't played for ~15 years.
04:05:15 -!- JesseH has quit (Read error: Connection reset by peer).
04:07:06 <zzo38> shachaf: What characters you have made up and what version and are you any good at it?
04:07:14 <\oren\> I am working on a 8 by 8 version of my font
04:07:31 <shachaf> zzo38: I was pretty young, and it was in Hebrew.
04:07:45 <shachaf> It was an after-school thing in elementary school.
04:08:04 <shachaf> I think I didn't come up with a name for my character, so the person running it gave it an interim name.
04:08:30 <shachaf> Perhaps the interim name was "Niagara".
04:09:46 -!- digitalcold has quit (Changing host).
04:09:46 -!- digitalcold has joined.
04:10:15 <zzo38> Yes but what detail of character? Even if you did not write the name then you must have made up the other stuff
04:10:33 <shachaf> I think it was probably a wizard.
04:10:39 <shachaf> And I'm guessing Chaotic Evil.
04:10:53 <shachaf> Or at least I initially wanted to be Chaotic Evil. Someone might've dissuaded me.
04:11:18 <shachaf> I remember casting a sleep spell and then killing a bunch of monsters -- goblins? -- with a dagger while they were asleep.
04:11:46 <shachaf> And there was some sort of object -- altar? table? it might've been made of stone -- that we needed to destroy or something, though we didn't know that at the time.
04:11:53 <shachaf> I think we needed to destroy it with some sort of special hammer.
04:15:13 -!- jameseb has quit (Ping timeout: 256 seconds).
04:15:32 -!- Taneb has quit (Ping timeout: 246 seconds).
04:16:00 -!- Patashu has quit (Ping timeout: 264 seconds).
04:16:24 <zzo38> There are many spells that can be used to destroy stuff made of stone too but you might not necessarily have any such spells. And there would be other ways to do it that do not involve any magic.
04:18:58 -!- hppavilion[2] has joined.
04:19:03 <hppavilion[2]> NEW SCIENCE WORD TIME
04:19:20 <hppavilion[2]> Pancakification: What happens to you as you fall into a White Hole
04:19:51 -!- Patashu has joined.
04:25:10 <zzo38> I don't know much about White Hole?
04:26:19 <fizzie> I've heard it's just like a time-reversed black hole.
04:27:51 -!- variable has joined.
04:48:40 <\oren\> well then shouldnt people fall out of it, rather than in?
05:02:30 <hppavilion[2]> zzo38: fizzieL \oren\: It's basically a region in space where you can never enter, but can leave.
05:02:56 <shachaf> zzo38: It was some special important thing.
05:03:21 -!- rodgort has quit (Quit: Leaving).
05:04:03 <hppavilion[2]> is RPN Combinatory Logic a thing?
05:04:38 <hppavilion[2]> I'm going to guess no, as there's no way to distinguish the "operators" (combinators) from the "operands" (combinators (case and point))
05:05:10 <hppavilion[2]> Not without parenthesis or an argument count argument, at least
05:05:27 <hppavilion[2]> (*parenthesis)?
05:14:42 -!- bender| has changed nick to bender.
05:16:08 <hppavilion[2]> oh
05:16:11 <hppavilion[2]> Hi bender
05:16:15 -!- hppavilion[2] has changed nick to hppavilion1.
05:16:16 <bender> hi
05:16:20 -!- hppavilion1 has changed nick to hppavilion[1].
05:16:39 <hppavilion[1]> So RPN Combinatory Logic is /not/ a thing, correct?
05:17:49 <bender> What?
05:22:30 -!- rodgort has joined.
05:27:27 -!- Patashu has quit (Remote host closed the connection).
05:27:43 -!- Patashu has joined.
05:32:41 -!- Sgeo has quit (Quit: Leaving).
05:33:22 -!- JesseH has joined.
05:33:52 -!- Sgeo has joined.
05:41:13 <hppavilion[1]> bender: RPN combinatory logic
05:41:16 <hppavilion[1]> Like, the ski calculus
05:41:21 <hppavilion[1]> In reverse polish notation
05:41:50 <\oren\> why not?
05:42:37 <\oren\> http://fontstruct.com/fontstructions/show/1186284 <-- also, I made another font, this one is square
05:42:55 <hppavilion[1]> \oren\: Well RPN works with arithmetic and such because we can distinguish between operators and operands
05:42:57 <hppavilion[1]> Oh joy
05:43:05 <hppavilion[1]> But in Combinatory Logic
05:43:06 -!- Wright has quit (Ping timeout: 240 seconds).
05:43:28 <hppavilion[1]> "Operators" and "Operands" (which are /not/ the correct terms) are the same
05:44:43 <hppavilion[1]> And furthermore, the number of other combinators a combinator accepts can vary (K (S x y) ) vs. (K (S x) y)
05:45:00 <hppavilion[1]> Not so much furthermore as "also"
05:45:35 <hppavilion[1]> s/e/q/ig
05:45:54 <hppavilion[1]> \oren\: What do you have to say to THAT?
05:46:30 <hppavilion[1]> (also, having an RPN combinatory logic where we have an extra syntax where we write the argument count is cheatig)
05:47:18 <hppavilion[1]> I guess perhaps "x y S K" would be different from "x y K S". That's probably the solution, now that I think about it.
05:47:55 <hppavilion[1]> Wait
05:47:58 <hppavilion[1]> No
05:48:15 <hppavilion[1]> The SYA doesn't support variable-length function arguments for a reason
05:49:29 -!- variable has quit (Quit: 1 found in /dev/zero).
05:50:20 <hppavilion[1]> I really have no clue what I'm doing xD
05:50:24 <hppavilion[1]> I'll just look it up
05:50:40 <\oren\> hmm you could use , and . instead of spaces
05:51:33 -!- Thisbe has joined.
05:51:43 <hppavilion[1]> The internet doesn't know
05:51:58 <hppavilion[1]> \oren\: And how would that help? What would , and . mean?
05:53:23 <\oren\> . would be used as function composition
05:53:33 <hppavilion[1]> OK
05:53:34 <\oren\> , would be used to separate arguments
05:53:37 <hppavilion[1]> Ah
05:53:49 <hppavilion[1]> In RPN of course?
05:53:53 <\oren\> yes
05:54:04 <hppavilion[1]> So how would we define I with SK?
05:54:46 <\oren\> K,K.S
05:55:35 <hppavilion[1]> OK
05:55:53 <hppavilion[1]> Um
05:55:56 <\oren\> IOW every S expression would be of the form
05:55:58 <hppavilion[1]> Give me a bit to process that
05:56:04 <\oren\> x,y,z.S
05:56:29 <hppavilion[1]> OK...
05:56:40 <hppavilion[1]> I'd probably just be better sticking with normal notation
05:56:42 <hppavilion[1]> xFD
05:56:44 <hppavilion[1]> *xD
05:57:04 <hppavilion[1]> I got a Stare 1.0 interpreter working, BTW
05:57:13 <hppavilion[1]> You have to hand-crank the parser though
05:58:56 <hppavilion[1]> That is, you have to code in a parsed program as a literal
06:03:37 <hppavilion[1]> "Turing Tarpits are easy. Come back when you want to ACTUALLY design a language"
06:06:57 <hppavilion[1]> I mean, tarpits are nice and all, but pretty much only when they bring something new to the table
06:14:52 -!- hppavilion[1] has quit (Ping timeout: 246 seconds).
06:16:20 -!- bender has quit (Quit: Ping Pong Fuckout).
06:16:38 -!- bender has joined.
06:17:16 -!- bender has quit (Remote host closed the connection).
06:20:10 -!- bender|_ has joined.
06:20:16 -!- bender|_ has quit (Remote host closed the connection).
06:20:27 -!- bender| has joined.
06:21:36 -!- bender| has changed nick to bender.
07:25:13 -!- sc00fy has joined.
07:40:51 <myname> go tell the thousand people that design bf derivates
07:42:24 -!- TieSoul has joined.
07:43:11 -!- ^v has quit (Remote host closed the connection).
07:46:26 -!- augur has quit (Remote host closed the connection).
07:47:02 -!- augur has joined.
07:47:46 -!- TieSoul has quit (Ping timeout: 260 seconds).
07:50:52 -!- TieSoul has joined.
07:56:06 -!- sc00fy has quit (Ping timeout: 240 seconds).
08:15:01 -!- Taneb has joined.
08:39:06 -!- AnotherTest has joined.
08:44:40 -!- Thisbe has quit (Ping timeout: 240 seconds).
09:11:14 -!- hppavilion[1] has joined.
09:15:28 -!- hppavilion[1] has quit (Ping timeout: 246 seconds).
10:38:08 -!- AnotherTest has quit (Ping timeout: 272 seconds).
10:44:57 -!- doesthiswork has joined.
10:59:38 -!- jameseb has joined.
11:07:16 -!- x10A94 has joined.
11:07:58 -!- Melvar` has changed nick to Melvar.
11:10:23 <Vorpal> hi
11:11:39 -!- JesseH has quit (Read error: Connection reset by peer).
11:16:34 -!- AnotherTest has joined.
11:18:17 -!- AnotherTest has quit (Client Quit).
11:24:17 <quintopia> hi
11:25:53 <quintopia> i think we should have a corewars type game based on aubergine. much lower barrier to entry with many of the same strategies available
11:28:13 <quintopia> @ask boily corewars-clone based on aubergine?
11:28:13 <lambdabot> Consider it noted.
11:29:05 <int-e> do you verbs?
11:29:26 <int-e> . o O ( damn, let me try that again )
11:29:29 <int-e> you verbs?
11:29:40 <myname> :R
11:44:04 -!- idris-bot has joined.
11:52:44 <HackEgo> [wiki] [[List of Turing-complete models of computation]] http://esolangs.org/w/index.php?diff=44281&oldid=44274 * SuperJedi224 * (+9) /* Turing machines */
11:53:17 <quintopia> there are no "you verbs"
11:53:33 <HackEgo> [wiki] [[List of Turing-complete models of computation]] http://esolangs.org/w/index.php?diff=44282&oldid=44281 * SuperJedi224 * (+91) /* Turing machines */
11:57:08 <HackEgo> [wiki] [[List of Turing-complete models of computation]] http://esolangs.org/w/index.php?diff=44283&oldid=44282 * SuperJedi224 * (+94) /* Turing machines */
11:58:22 <int-e> quintopia: ftr, that started out as "Do you hate verbs?" but some subtleties got lost in the translation into the quintopian language ;)
12:00:17 <quintopia> you cant drop verbs unless they are implied in quintopiese
12:03:46 -!- blurelIse has joined.
12:11:53 <Melvar> Where the hell did (&) as reverse function application come from?
12:13:36 -!- jameseb has quit (Quit: ZNC - http://znc.in).
12:13:37 -!- Taneb has quit (Quit: I seem to have stopped.).
12:14:21 <blurelIse> possibly from a catamorphism melvar but im no expert
12:15:47 <int-e> https://mail.haskell.org/pipermail/libraries/2012-November/018832.html
12:15:56 -!- jameseb has joined.
12:16:08 <int-e> "the nae was free to take" seems to have played a significant role
12:16:43 <Melvar> The obvious choice, (#), wasn’t?
12:19:52 <int-e> hmm, lens 3.4: renamed `(%)` to `(&)`; lens 2.9: Renamed `|>` to `%`
12:21:40 <int-e> Anyway none of these names is obvious to me. I've seen code using |> in ML...
12:22:04 <Melvar> Certaintly F# uses that operator IIRC.
12:31:02 <int-e> hmm... 'The mnemonic for % is 'mod'ify.'
12:35:07 <int-e> (quoting from https://github.com/ekmett/lens/issues/17) later this happened: https://github.com/ekmett/lens/issues/100 ... Michael Sloane offerse a mnemonic for &: '(&) somewhat naturally suggests "and then" ... "and then"'
12:36:58 <int-e> and edward sums it up here, https://mail.haskell.org/pipermail/libraries/2012-November/018843.html
12:40:56 <Melvar> (&) is perfect for reverse *composition*, in my view.
12:41:36 <Melvar> “Another popular color of this bikeshed, (#) as is used in diagrams, interacts very poorly with MagicHash and has a very high precedence that ruins it for most dsl purposes.”
12:41:44 <Melvar> Why would it ever interact with MagicHash?
12:42:34 <Melvar> Moreover, why are you bound to use the same precedence as a given example using the name?
12:49:20 -!- boily has joined.
12:52:33 <Melvar> Anyway, a missed opportunity to make sense. I’ll quiet down about it now.
12:56:33 -!- FreeFull has quit (Ping timeout: 256 seconds).
12:56:42 -!- draghi has joined.
12:58:30 -!- FreeFull has joined.
13:02:35 -!- draghi has quit (Quit: Leaving).
13:13:59 -!- Patashu has quit (Ping timeout: 240 seconds).
13:52:25 -!- heddwch has changed nick to heddwc.
13:53:46 -!- heddwc has changed nick to heddwch.
14:19:30 -!- oerjan has joined.
14:22:38 -!- MDream has changed nick to MDude.
14:23:47 <\oren\> The current UTF-8 standard is wasteful with the code points now limited to 10FFFF
14:24:47 <izabera> what do you mean by "now"?
14:24:56 <izabera> did they change the standard?
14:25:48 <\oren\> originally you could have code points up to 31 bits
14:26:08 <\oren\> now it is 21 bits
14:30:53 <FreeFull> \oren\: blame UTF-16
14:31:05 <FreeFull> UTF-8 would support code points up to 31 bits without any problem
14:31:21 <\oren\> upto to 36 bits, actually
14:31:35 <FreeFull> Yeah, without any problem and then some
14:31:44 <\oren\> but they limited it at first to allow utf-32 to work
14:31:57 <\oren\> now they limited it for utf-16
14:32:23 <myname> utf-16 - with all the disadvantages of utf-8 and utf-32 combined
14:32:27 <\oren\> One program I wrote uses utf-24
14:32:34 <FreeFull> At least it won't be limited any further now
14:33:51 <\oren\> e.g. it does (*(t_int32*)(s+i*3))&0xFFFFFF
14:35:10 <\oren\> the lowest 8 bits of the next code point have to be stripped out, but hey it works
14:36:52 <\oren\> utf-24 would be an eminently practical way to transmit data consisting mostly of supernal plane characters
14:38:09 <\oren\> e.g. emoji languages
14:38:31 <boily> \helloren\.
14:38:33 <boily> supernal?
14:38:36 <boily> @massages-loud
14:38:36 <lambdabot> quintopia asked 3h 10m 23s ago: corewars-clone based on aubergine?
14:38:59 <boily> @tell quintopia Ō_Ō holy fungot that is one froody idea!
14:39:00 <lambdabot> Consider it noted.
14:39:00 <fungot> boily: let's try to get the answers from biologists," he says. " these people used bin's power, authority and facilities to carry out this operation."
14:39:36 <boily> `addquote <fungot> let's try to get the answers from biologists," he says. " these people used bin's power, authority and facilities to carry out this operation."
14:39:36 <fungot> boily: justin returns annually to alsace where he if fnord as the fnord
14:39:38 <HackEgo> 1254) <fungot> let's try to get the answers from biologists," he says. " these people used bin's power, authority and facilities to carry out this operation."
14:40:10 <\oren\> supernal plane is from Mage: The Awakening
14:40:14 <boily> fungot: I don't really care about what Justin does. I'm still gonna vote for my local NDP deputee.
14:40:35 <boily> \oren\: tmyk tdh
14:41:46 <\oren\> I am planning on flipping a coin and voting either red or orange depending
14:42:22 <boily> noooooooooooooo!
14:42:33 <\oren\> because canadiane politics is supremely boring
14:42:53 <boily> red bad. orange good. orange is your friend. oraaaaaaaange.
14:43:38 <\oren\> which one is going to refund the CBC?
14:43:51 <\oren\> I want my damn hockey broadcasts
14:44:06 <\oren\> s/refund/re-fund/
14:44:48 <lifthrasiir> \oren\: it is hard to do better than UTF-8. you *can* lower the average bytes for each code point but not that much. let's keep ASCII compatibility and reassign x lead bytes and y cont. bytes (x+y=128); then some code points will get 4-byte sequence as the minimum of x*y^2 = 310 675 << 2^21.
14:44:49 <\oren\> oh it's the orange. orange then
14:45:06 <lifthrasiir> 2^20*
14:45:27 <oerjan> ^style
14:45:27 <fungot> Available: agora alice c64 ct darwin discworld enron europarl ff7 fisher fungot homestuck ic irc iwcs jargon lovecraft nethack oots pa qwantz sms speeches ss wp* youtube
14:45:33 <oerjan> ^style wp
14:45:33 <fungot> Selected style: wp (1/256th of all Wikipedia "Talk:" namespace pages)
14:45:44 <boily> coppro: chelloppro. as a fellow canuck, any political persuasions we should be aware of?
14:45:46 <\oren\> lifthrasiir: yeah but for most languages you want to skew it heavily to make the BMP chars shorter
14:45:57 <coppro> boily: L
14:46:12 <coppro> federally, at any rate
14:46:45 <lifthrasiir> \oren\: the minimum of x*y = 4 096, so the resulting distribution will be heavily skewed (even when there are 2^16 code points you have to assign many of them 3-byte sequences)
14:50:00 <\oren\> Hmm what if we assigned the currently unused chars to make particular sets of 3-byte chars 2-bytes
14:51:18 <\oren\> like F5, we could assign to make hiragana. and F6 to katakana
14:52:30 <\oren\> Also the system leaves many, many sequences invalid which could be used
14:54:59 <\oren\> I'll have to think about this
14:57:16 <boily> I believe it'll only create a mess similar to Shift-JIS.
14:59:52 <\oren\> shift-jis is only a mes because of 0xx and 1xx bytes being used in wide char encodings
15:00:22 <\oren\> there's no reason to discard a whole range of sequences of high-bit bytes
15:04:02 <Vorpal> Hm they limited Unicode?
15:04:08 <Vorpal> Silly
15:04:32 <Vorpal> How many unallocated code points are left now?
15:05:02 <Vorpal> \oren\, ^
15:07:11 <\oren\> 993375
15:07:36 <\oren\> 0xF285F in hex
15:07:40 <\oren\> that many
15:11:50 <Vorpal> well, still a while until we run out then
15:13:09 <Vorpal> \oren\, I think we should use UTF-32 instead. If you are worried about space usage, just zlib it or something
15:13:23 <Vorpal> At least for data storage and transfer that makes sense
15:13:32 <Vorpal> Maybe not for processing though
15:15:16 <\oren\> A trivial encoding like "one 2xx byte followed by one or more 3xx bytes" would give us 2 bytes for points up to 0x1000 and three bytes for points up to 0x40000
15:16:21 <int-e> octal, I suppose
15:16:27 <\oren\> yeas octal
15:17:21 <\oren\> it woukd give india a treat by making devanagari only 2 bytes each
15:17:56 -!- MercurialHg has joined.
15:18:06 <Vorpal> \oren\, again, why does it matter? zlib is going to do a better job anyway
15:18:18 <int-e> \oren\: ah, but that wouldn't be self-delimiting; you need to look ahead in order to figure out whether a character was fully transmitted.
15:18:25 <\oren\> Vorpal = word processing
15:18:54 <int-e> (or more abstractly, it's not a prefix code)
15:19:08 <\oren\> int-e: yes. but transmission codes provide delimiters anyway
15:19:13 <Vorpal> \oren\, wouldn't UTF-32 be a better in memory representation anyway? That way characters are fixed with
15:19:57 <MercurialHg> what should i add to my esolang
15:20:11 <Vorpal> MercurialHg, balanced ternary
15:20:12 <\oren\> yes but do you really want to decode/reencode everying in every sed, grep etc implementation?
15:20:20 <Vorpal> (I have no idea what sort of language it is)
15:20:32 <Vorpal> \oren\, okay, that makes sense
15:21:07 <Vorpal> \oren\, though actually you don't need to: gzip -d foo.gz | grep | sed | gzip -
15:21:22 <Vorpal> Assuming everything is UTF-32 anyway
15:21:47 <\oren\> that's the same problem. you end up with a lot of extra processing
15:22:11 <Vorpal> True
15:23:14 <\oren\> Oh I get it, you thought by word processing I meant like MS Word. whoops
15:24:06 <MercurialHg> what should be name of my bot?
15:24:08 <Vorpal> \oren\, emacs, stuff like that
15:24:10 <\oren\> I meant like you have a big file of CSV or JSON or whatnot and you want to process it
15:25:41 <\oren\> ideally for such process (which could happen on a server request) you should be able to do it very fast.
15:26:22 <\oren\> and with very little memory
15:27:05 <Vorpal> \oren\, though HTTP is increasily zlibed these days
15:29:13 <\oren\> assholes using a million cross-site mega-cookies, probably.
15:29:42 <Vorpal> heh
15:30:05 <boily> MercurialHg: ytterbot.
15:30:32 <MercurialHg> Lithium?
15:31:16 <oerjan> i'm with boily
15:31:33 <Vorpal> MercurialHg, It should be called SubversionSvn
15:31:33 <oerjan> if you don't get that you don't deserve to name bots after elements hth
15:31:56 <Vorpal> boily, yes that is a very neat name
15:32:09 <\oren\> praseodymbot
15:32:33 <Vorpal> oerjan, which ones was it again... Scandium, Yttrium, Yterbium, and some other I forgot the name of, right?
15:32:42 <\oren\> Erbium
15:32:46 <Vorpal> Ah
15:33:18 -!- villasukka has quit (Remote host closed the connection).
15:33:18 -!- atehwa has quit (Read error: Connection reset by peer).
15:33:55 <Vorpal> \oren\, oh and Terbium too
15:34:21 <Vorpal> And holmium and thulium
15:34:22 <Vorpal> Wow
15:34:42 <Vorpal> Apparently not Scandium though
15:36:05 <oerjan> not?
15:36:32 <Vorpal> According to wikipedia indeed not
15:36:37 <Vorpal> "At a quarry and mine near the village, the rare earth mineral yttria was discovered and named after the village. This crude mineral eventually proved to be the source of four new elements that were named after the mineral ore and the village. These elements are yttrium (Y), erbium (Er), terbium (Tb), and ytterbium (Yb)[1] and were first described in 1794, 1842, 1842, and 1878, respectively. In 1989 the
15:36:37 -!- boily has quit (Quit: OPINION CHICKEN).
15:36:37 <Vorpal> ASM International society installed a plaque at the former entrance to the mine, commemorating the mine as a historical landmark.[2]
15:36:37 <Vorpal> In addition, three other lanthanides, holmium (Ho, named after Stockholm), thulium (Tm, named after Thule, a mythic analog of Scandinavia), and gadolinium (Gd, after the chemist Johan Gadolin) can trace their discovery to the same quarry.[3]"
15:37:06 <oerjan> oh the quarry
15:37:07 <Vorpal> Scandium is not in the list
15:37:20 <Vorpal> oerjan, yes, what were you talking about?
15:37:27 <oerjan> i thought you were just naming elements named after scandinavian places
15:37:31 <Vorpal> oerjan, no
15:37:56 <zzo38> I have written a SQLite extension to parse JSON (based on PDJSON, with one bug fixed), so that is one way to process big file of JSON by using a database, if you would need to.
15:39:05 -!- Lunarian has joined.
15:40:00 -!- MercurialHg has quit (Ping timeout: 264 seconds).
15:44:43 <oerjan> Vorpal: the article on Scandium itself is intriguing, though. it *was* extracted from gadolinite. it's not a lantanoid, though.
15:48:28 <Vorpal> oerjan, ah
15:54:48 -!- Lunarian has quit (Read error: Connection reset by peer).
16:07:07 -!- bender has quit (Quit: [you can't stop this one: REKKKKT REKKT REKT!]).
16:22:30 <oerjan> @ask hppavilion[1] <hppavilion[1]> So RPN Combinatory Logic is /not/ a thing, correct? <-- does unlambda with the grammar in reverse count?
16:22:30 <lambdabot> Consider it noted.
16:23:44 <oerjan> @tell hppavilion[1] i.e. si`i`si`i`` or even iis``iis```
16:23:45 <lambdabot> Consider it noted.
16:25:53 <oerjan> @tell hppavilion[1] <hppavilion[1]> And furthermore, the number of other combinators a combinator accepts can vary (K (S x y) ) vs. (K (S x) y) <-- that's just currying
16:25:53 <lambdabot> Consider it noted.
16:31:11 -!- Wright has joined.
16:44:09 <oerjan> @tell Melvar <Melvar> Why would it ever interact with MagicHash? <-- if MagicHash is on, it's often mandatory to put space before it when using it as an operator.
16:44:09 <lambdabot> Consider it noted.
16:44:32 <edwardk> int-e: (|>) has the wrong semiotics in haskell. it seems related to (<|>). (%) conflicted with Data.Ratio, which rather upset a number of folks.
16:45:00 -!- nortti has changed nick to newbottomman.
16:45:06 -!- newbottomman has changed nick to nortti.
16:45:07 <oerjan> and |> is used in Data.Sequence
16:45:33 <edwardk> int-e: that is why those went away and (&) which has the benefit of being shorter than (|>), being unpaired due to (|) being taken by syntax, and being more or less unused because of confusion about and and or operators won
16:46:08 <edwardk> so yitz offered up (&) and i had no reason to prefer (%) over it other than stubbornness and i switched
16:46:32 <edwardk> and so the 'and...' sequencing mnemonic had the benefit that someone might guess it
16:48:19 <oerjan> :t (|>)
16:48:21 <lambdabot> Snoc s s a a => s -> a -> s
16:48:38 <oerjan> > (0$0|>)
16:48:40 <lambdabot> The operator ‘|>’ [infixl 5] of a section
16:48:40 <lambdabot> must have lower precedence than that of the operand,
16:48:40 <lambdabot> namely ‘$’ [infixr 0]
16:48:45 <oerjan> darn
16:49:34 <Melvar> oerjan: Surely you’re going to put a space before it anyway in all cases.
16:50:11 <oerjan> Melvar: well _some_ people might not. they might want to chain it like . especially if using lens
16:52:20 <Melvar> My own opinion is that (&) should have been reverse composition because of the and-then mnemonic. So “foo . bar . baz $ x” flips into “x # baz & bar & foo”.
16:52:55 * Melvar shrugs.
16:53:04 <edwardk> Melvar: we already have the noisier operator (>>>) for that
16:53:09 <oerjan> my own opinion is that haskell sacked its syntax czar too early.
16:53:13 <edwardk> but (&) didn't have a name
16:53:18 * edwardk shrugs.
16:53:41 <edwardk> a shorter (>>>) would have been useless to me and i'd have wound up taking (%) or something for this purpose anyways.
16:54:04 <oerjan> :t (&=)
16:54:06 <lambdabot> Not in scope: ‘&=’
16:54:06 <lambdabot> Perhaps you meant one of these:
16:54:06 <lambdabot> ‘&&’ (imported from Data.Bool), ‘/=’ (imported from Data.Eq),
16:54:10 <Melvar> Hmm.
16:54:11 <edwardk> :t (&~)
16:54:13 <lambdabot> s -> State s a -> s
16:54:25 <oerjan> edwardk: now _that
16:54:29 <oerjan> 's_ inconsistent.
16:54:50 <edwardk> > (1,2) &~ do _1 %= 1; _2 *= 200
16:54:53 <lambdabot> No instance for (Show t0)
16:54:53 <lambdabot> arising from a use of ‘show_M724657678350748221816791’
16:54:53 <lambdabot> The type variable ‘t0’ is ambiguous
16:55:44 <edwardk> > (1,2) &~ do _1 += 1; _2 *= 200
16:55:47 <lambdabot> (2,400)
16:56:03 <Melvar> ( :let instance Category (\a,b => a -> b) where id = Basics.id; (.) = Basics.(.)
16:56:03 <idris-bot> defined
16:56:17 <edwardk> &~ is inconsistent, because there is no operator & that takes a coherent type for its second argument and the result.
16:56:23 <oerjan> edwardk: pretty sure %~ and %= "should" have been &~ and &= if redoing this stuff
16:56:26 <edwardk> so it falls into a lexical gap
16:56:57 <edwardk> oerjan: you have hit on what % originally was 'mod', and why those had those names
16:57:13 <edwardk> but we kept the %~ and %= names
16:57:15 <oerjan> yeah i did rid the mailing list link above
16:57:18 <oerjan> *read
16:57:24 <Melvar> ( :t Category.(.) (*2) (+1)
16:57:24 <idris-bot> Can't resolve type class Category cat
16:59:20 <oerjan> edwardk: there ought to be alphanumeric versions of <%~ and <<%~
16:59:30 <edwardk> ?
16:59:36 <edwardk> oh as combinators?
16:59:41 <oerjan> yeah
16:59:53 <oerjan> they're like a gap in the alphanumeric style
16:59:54 <edwardk> meh, you can write them easily enough directly just by picking f = (,) a
17:00:13 <edwardk> the combinators do not try to offer everything the operators do
17:00:23 <edwardk> the names get too verbose and messy too quickly
17:00:23 <oerjan> hm
17:00:29 <edwardk> the operators have a nice concise morphology
17:00:38 <edwardk> for those with religious objections to operators they can roll their own
17:00:51 <oerjan> well i understand not translating any other base operators than % and sometimes .
17:01:21 <oerjan> but i'm thinking maybe every "%" operator should have one
17:01:38 <edwardk> decided just not to climb this slippery slope =)
17:01:45 <oerjan> OKAY
17:01:59 <edwardk> you have no idea how many bikeshedding requests in different directions like that i get every day about lens
17:02:14 <edwardk> so my apathy here is a result of having been worn down to a nub ;)
17:02:34 <oerjan> @wn nub
17:02:36 <lambdabot> *** "nub" wn "WordNet (r) 3.0 (2006)"
17:02:36 <lambdabot> nub
17:02:36 <lambdabot> n 1: a small lump or protuberance [syn: {nub}, {nubble}]
17:02:36 <lambdabot> 2: a small piece; "a nub of coal"; "a stub of a pencil" [syn:
17:02:36 <lambdabot> {nub}, {stub}]
17:02:38 <lambdabot> [7 @more lines]
17:03:15 <edwardk> > nub [1,2,3,3,3,3,2,1,4]
17:03:17 <lambdabot> [1,2,3,4]
17:08:15 <oerjan> @more
17:09:26 <oerjan> *ACHOO*
17:14:47 -!- Taneb has joined.
17:14:56 <oerjan> haneb
17:18:09 <Taneb> Helloerjan?
17:21:24 -!- ^v has joined.
17:33:10 -!- ^v has quit (Ping timeout: 246 seconds).
17:34:48 <Melvar> ( :t nub
17:34:48 <idris-bot> Prelude.List.nub : Eq a => List a -> List a
17:34:48 <idris-bot> Data.Vect.nub : Eq a => Vect n a -> (p : Nat ** Vect p a)
17:40:10 -!- Sprocklem has quit (Ping timeout: 240 seconds).
17:41:45 -!- Sprocklem has joined.
18:02:27 -!- ^v has joined.
18:03:36 -!- sc00fy has joined.
18:09:38 -!- oerjan has quit (Quit: leaving).
18:10:18 -!- hppavilion[1] has joined.
18:13:59 -!- AnotherTest has joined.
18:28:31 -!- JesseH has joined.
18:35:50 <hppavilion[1]> Hellu
18:40:11 -!- heroux has quit (Ping timeout: 255 seconds).
18:41:10 -!- heroux has joined.
18:48:23 -!- x10A94 has quit (Read error: Connection reset by peer).
19:00:30 -!- heddwch has changed nick to sikin.
19:00:46 -!- sikin has changed nick to heddwch.
19:08:33 -!- ais523 has joined.
19:15:54 <tswett> There was this restaurant once which served brined salmon. One day, some inspectors came in and found that there wasn't enough lighting to illuminate the salmon sufficiently.
19:16:02 <tswett> The restaurant was fined for lax lox lux.
19:27:05 <hppavilion[1]> LULZ
19:27:20 <hppavilion[1]> NO CLUE WHAT "LOX" IS BUT I ASSUME IT'S SALMON SO LULZ
19:27:33 <hppavilion[1]> (Brined salmon, specifically)
19:27:35 <hppavilion[1]> (lulz)
19:28:32 <pikhq> "Lox" is, indeed, brined salmon.
19:32:34 <hppavilion[1]> Zipf's law is cooooooooooooool
19:33:55 <myname> yeah
19:48:59 -!- blurelIse has quit (Ping timeout: 240 seconds).
20:06:49 <quintopia> @messages-loud
20:06:49 <lambdabot> boily said 5h 27m 49s ago: Ō_Ō holy fungot that is one froody idea!
20:07:20 <hppavilion[1]> HAPAX LEGOMENON
20:07:38 <hppavilion[1]> It's even more freudy than it is froody
20:07:50 <quintopia> yeah vsauce can be good sometimes
20:08:15 <hppavilion[1]> I should get my Stare parser up and running...
20:11:25 <quintopia> @tell boily aubergine+unconditional fork. (first argument=target of first process, second=target of second?)
20:11:25 <lambdabot> Consider it noted.
20:11:56 -!- sc00fy has quit (Ping timeout: 272 seconds).
20:12:14 -!- idris-bot has quit (Quit: Terminated).
20:13:02 <tswett> So I've installed Mozilla Lightbeam, but I don't really know what this stuff means.
20:13:11 <hppavilion[1]> Should I make a Combinatory Logic playground?
20:13:39 <hppavilion[1]> and/or programming lanuage?
20:13:53 <tswett> Presumably circles are sites I've visited. What are the triangles? Apparently they're sites I've "connected with"; does that mean sites I've made an HTTP connection to?
20:14:02 <zzo38> Yes (unless you have something else to do)
20:15:15 <hppavilion[1]> OK
20:15:21 <tswett> And what's the difference between a white line and a purple line?
20:15:32 <hppavilion[1]> It'll be a language that generally supports Combinatory Logic AND has some bonus features
20:16:18 -!- TieSoul has quit (Read error: Connection reset by peer).
20:16:25 <zzo38> OK you can do that, see what bonus feature and also the other details.
20:17:41 <hppavilion[1]> I think I'll just use Jay Conrod's parser combinator library...
20:17:46 <hppavilion[1]> For my Stare language
20:17:57 <hppavilion[1]> I want to finish Stare 1.0 interpreter before starting something else
20:21:26 <hppavilion[1]> Nah
20:21:34 <hppavilion[1]> I'll go to make my Combinator Playground
20:22:40 -!- Melvar has quit (Quit: rebooting).
20:26:20 -!- Melvar has joined.
20:29:54 -!- llue has quit (Quit: That's what she said).
20:30:25 -!- lleu has joined.
20:30:29 <hppavilion[1]> Yuy
20:30:35 <hppavilion[1]> Lexer is working perfectly
20:30:51 <hppavilion[1]> Luckily, I wrote a lexer design library a while back that allows lexers to be made with a single object
20:30:54 -!- atrapado has joined.
20:31:39 -!- idris-bot has joined.
20:35:57 -!- HackEgo has quit (Remote host closed the connection).
20:36:50 -!- vit4lity has joined.
20:37:20 <zzo38> How does that one work?
20:40:14 -!- APic has quit (Ping timeout: 250 seconds).
20:46:56 <hppavilion[1]> zzo38: How does what one work?
20:47:12 <hppavilion[1]> Also, can the Y combinator be defined in SK, or do I need to make it builtin?
20:47:44 <zzo38> Lexer design library
20:48:09 <hppavilion[1]> Ah
20:48:18 <hppavilion[1]> Basically, you import UtopiaLexer
20:48:24 <hppavilion[1]> Create a lexer() object
20:48:53 <hppavilion[1]> Then call lexer().add_token_expr(regex_string, tag) along with a few other optional arguments (transformation functions, slicing, etc.
20:48:55 <hppavilion[1]> )
20:49:28 -!- HackEgo has joined.
20:49:34 <tswett> Yeah, you can define the Y combinator. Let's see.
20:49:43 <hppavilion[1]> OK
20:50:23 <hppavilion[1]> I'm trying to figure out how to implement the S combinator in python, given an object that only has two variables: self.comb and self.arg
20:50:34 <hppavilion[1]> I call a function called combinator.eval(combinators)
20:50:43 <hppavilion[1]> and it has to do some stuff
20:51:16 <hppavilion[1]> And come up with S x y z = x z (y z)
20:51:26 <tswett> \f. (\x. f (x x)) (\x. f (x x)), that becomes \f. (S (K f) (S I I)) (S (K f) (S I I)), which in turn becomes...
20:52:22 <tswett> Something pukeworthy, I'm sure...
20:53:26 <tswett> hppavilion[1]: so what are self.comb and self.arg?
20:54:12 <hppavilion[1]> tswett: I have a class called CombinatorExp. When initialized, it takes two arguments: comb (combinator) and argument. I save those two variables to the class.
20:54:41 <hppavilion[1]> Later, I call CombinatorExp.eval(combinators), where combinators is a map telling the thing what non-SK combinators mean what
20:54:52 <hppavilion[1]> If it's the K combinator, I return self.arg
20:55:10 <hppavilion[1]> If it's the S combinator, well, that's what I'm trying to implement.
20:55:34 <hppavilion[1]> Else, if it's a non-primitive combinator, I evaluate that index of the combinators dictionary
20:55:39 <hppavilion[1]> And return its result
20:55:42 * tswett nods.
20:56:03 <tswett> Well, currently, it sounds like a CombinatorExp can only represent an expression of the form (x y), where x is a combinator.
20:56:13 <tswett> What if x isn't a combinator? What if it's another expression?
20:57:46 <hppavilion[1]> CombinatorExp IS an expression
20:58:01 <hppavilion[1]> I just fixed it for if you don't give it an argument
20:58:33 <tswett> All right. Suppose that D, E, and F are combinators. How do you represent the expression (D E) F?
20:59:25 <hppavilion[1]> `CombinatorExp(CombinatorExp('D', 'E'), CombinatorExp('F', None))` I believe
20:59:26 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: CombinatorExp(CombinatorExp('D',: not found
20:59:30 <hppavilion[1]> Whoops
20:59:36 <hppavilion[1]> Forgot about hackbot
20:59:58 <hppavilion[1]> Well that might be a problem, now that I think about it
21:00:07 <tswett> So it sounds like self.comb can be a letter, but it doesn't have to be.
21:01:29 <hppavilion[1]> tswett: https://github.com/ZodiacWorkingGroup/Combinatory-Logic-Playground/blob/master/AST.py
21:01:36 <hppavilion[1]> There's my AST library
21:03:15 <tswett> Well, here's how I'd approach it.
21:03:19 <hppavilion[1]> I'm still fixing things
21:03:22 <hppavilion[1]> Go on
21:03:32 <tswett> Start with an abstract class called Expression. Make every type of expression a subclass of Expression.
21:03:37 <hppavilion[1]> OK
21:03:58 <coppro> we're talking about Haskell right?
21:04:14 <tswett> So one initial thought is to have two subclasses, ApplyExpression and CombinatorExpression.
21:04:27 <hppavilion[1]> coppro: I'm using python, because haskell is hard
21:04:39 <tswett> ApplyExpression contains two sub-expressions. CombinatorExpression contains a letter.
21:04:55 <tswett> I think Haskell is really well-suited to this.
21:05:23 <hppavilion[1]> tswett: I know, but that's been done
21:06:04 <hppavilion[1]> I would use Haskell, but... well, I don't have a good reason.
21:06:13 <hppavilion[1]> I'm doing it this way because I feel like it xD
21:09:19 <hppavilion[1]> tswett: Go on...
21:09:49 <tswett> All right.
21:09:58 <tswett> Expression has two abstract methods, eval() and apply().
21:10:13 <tswett> For ApplyExpression, eval() works by just calling apply() on its two sub-expressions.
21:10:25 <hppavilion[1]> Interesting...
21:10:45 <tswett> And apply() works by, um... I'll have to think about that.
21:11:31 <hppavilion[1]> What I have so far should work, unless it's broken by the s combinator
21:11:40 <tswett> For CombinatorExpression, eval() usually just makes the object return itself. (Expression objects should be immutable, by the way.)
21:11:53 <hppavilion[1]> OK
21:11:59 -!- vit4lity has quit (Quit: Leaving).
21:12:04 <hppavilion[1]> I'm using python, so... not sure if that's possible
21:12:10 <hppavilion[1]> I'll just avoid muting things xD
21:12:32 <tswett> self.apply(arg) adds arg to the argument list of self, and then, if self has enough arguments in its argument list, it constructs a new expression as appropriate and returns that.
21:12:56 <tswett> And when I say it adds arg to the argument list of self, by "self", I mean "a copy of self".
21:13:06 <tswett> Something along those lines.
21:13:32 <hppavilion[1]> OK
21:14:07 <hppavilion[1]> But I ALSO have eval() and apply() accept an argument of type map that maps combinator names to expressions, just so you can define new combinators programmatically
21:14:25 <tswett> For ApplyExpression, self.apply(arg) should pretty much return self.eval().apply(arg), since eval() should never return an ApplyExpression.
21:14:47 <hppavilion[1]> Ah?
21:15:20 <tswett> I mean, "eval() should never return an ApplyExpression" is sort of a self-imposed rule.
21:16:06 <tswett> The reason I'm suggesting imposing it is that we can consider ApplyExpressions to be "unevaluated", and eval() shouldn't return an unevaluated expression.
21:16:24 <hppavilion[1]> I have a feeling I'm going to end up with code I can't understand by the time I'm done xD
21:21:06 <hppavilion[1]> I still don't know what I'm doing xD
21:21:45 <tswett> Lemme see here.
21:22:19 <hppavilion[1]> I should probably document what I want
21:22:41 <tswett> It looks like your K is actually I.
21:23:06 <tswett> In any case, let me see if I can suggest a gradual series of small changes.
21:23:43 <hppavilion[1]> I want:
21:23:43 <hppavilion[1]> * S and K combinators to work
21:23:44 <hppavilion[1]> * For this to work, I need to make S accept its 3 arguments
21:23:44 <hppavilion[1]> * New combinators to be definable with <name> = <expression>
21:23:44 <hppavilion[1]> * Defined combinators to accept multiple arguments (via currying) like S does
21:23:55 <hppavilion[1]> Those are my 4 goals
21:24:22 <hppavilion[1]> Or, 3 goals if we exclude 1.2
21:24:42 <hppavilion[1]> Or, if we assume that 2.2 is a subgoal, 2 goals and 1 subgoal
21:24:58 <tswett> Now, my idea is to say that an expression of the form, say, (S x) or (S x y) is represented by a CombinatorExpression.
21:25:09 <hppavilion[1]> OK
21:25:24 <tswett> And that means that CombinatorExpression is going to have a self.args attribute.
21:25:32 <hppavilion[1]> And self.args is going to be a list?
21:25:36 <tswett> Yep.
21:25:53 -!- ^v has quit (Ping timeout: 240 seconds).
21:25:54 <hppavilion[1]> I don't think that's combinatory though... But I can do it
21:26:51 <tswett> Another option is to replace CombinatorExpression with six other classes: SExpression, S1Expression, S2Expression, KExpression, K1Expression, and IExpression.
21:27:13 <hppavilion[1]> I thought of that
21:27:18 <tswett> Which represent, respectively, expressions of the form (S), (S x), (S x y), (K), (K x), and (I).
21:27:38 <tswett> That may or may not be excess complexity.
21:27:43 <hppavilion[1]> IExpression could, of course, be represented with others
21:28:04 <tswett> Right.
21:28:25 <hppavilion[1]> One idea I thought of to enable currying is to make S x return a new combinator which would be a hash of the string "S x"
21:28:41 <hppavilion[1]> And then that would just apply to the next expression
21:29:00 <hppavilion[1]> Not "return a new combinator" so much as "add a new combinator to the combinator dictionary"
21:29:07 <tswett> That's certainly *an* option.
21:29:27 <hppavilion[1]> I guess the hashing step would be unnecessary
21:29:59 <tswett> But you'll still need to define a meaning for that new combinator.
21:30:08 <hppavilion[1]> I know
21:30:12 <zzo38> When are they going to make the rules of Magic: the Gathering to be sufficiently mathematically elegant?
21:30:16 <hppavilion[1]> That's where I got hung up...
21:30:34 <hppavilion[1]> I think
21:30:59 <tswett> zzo38: in other words, when are they going to implement them in C#?
21:31:39 <hppavilion[1]> I'm adding a new class called FullExpression
21:32:01 <\oren\> is there a difference between ((K x) (K x)) and ((K x) K) x?
21:32:14 <hppavilion[1]> I don't /think/ so
21:32:25 <hppavilion[1]> s/n't//
21:32:31 <tswett> The former is x, and the latter is (x x).
21:32:48 <\oren\> yeah. so parens are in fact necessary
21:33:22 <tswett> Yup.
21:35:07 <tswett> K (K x) y z is x while K K x y z is y, so if you can add and remove parentheses, then everything is equal to everything.
21:35:37 <\oren\> aha
21:36:50 <zzo38> tswett: I don't meant C# I meant by mathematics. Rules might be found more clear in such a way
21:37:49 <hppavilion[1]> tswett: I think I might know how to figure this out
21:37:52 <tswett> zzo38: so the rules would consist of mathematical prose?
21:38:04 <hppavilion[1]> What happens if we add all the redundant parenthesis to S x y z?
21:38:08 <hppavilion[1]> What does it become?
21:38:09 <zzo38> tswett: Yes
21:38:18 <tswett> hppavilion[1]: (((S x) y) z)
21:38:21 <hppavilion[1]> OK
21:38:26 <hppavilion[1]> That probably makes it easier
21:38:27 <hppavilion[1]> Somehow
21:38:39 <tswett> zzo38: would you hope to end up with less than 100 pages of prose at the end?
21:39:10 <zzo38> (Preferably ones that can also be put into the computer, such as with Literate Haskell you can almost do like that)
21:39:27 <zzo38> tswett: I don't know. It depend how big are the pages, and what rules are modified and some other stuff
21:40:38 <zzo38> But I had other idea too, make up the programming language for defining the rules and effect of cards of these kind of card games, and then implement rules with such a thing. My idea is to use RDF and then make up a literate RDF format to write rule with (like Xturtle with WEB together, perhaps)
21:45:37 <zzo38> I think I have shown a few examples on here before of what I was thinking of how to do
21:45:49 <\oren\> It seems to me that if you are writing game rules in a computer-readable logical form, then you're halfway to writing a comuter game, so why not just do that
21:46:16 <zzo38> \oren\: Sure that is one thing it can be used for, but the intention is that it would be independent of such things.
21:46:21 <hppavilion[1]> \oren\: I think it has to be both computer-readable AND human (non-advanced-programmer) readable
21:46:55 <\oren\> so use COBOL.
21:46:56 <zzo38> hppavilion[1]: Yes, that is kind of also how I have meant
21:47:04 <hppavilion[1]> Yay!
21:47:06 <hppavilion[1]> I was right!
21:47:12 <hppavilion[1]> Use some language like IMP
21:47:21 <hppavilion[1]> Just use anything but perl
21:47:21 <zzo38> (Not exactly, but close)
21:47:29 <hppavilion[1]> Oh :,(
21:47:59 <zzo38> I think literate programming, with a mathematically-defined programming language, is the way.
21:48:32 <hppavilion[1]> So easy Haskell then?
21:48:53 <myname> more love for curry
21:50:48 <zzo38> Haskell is an idea too I thought yes.
21:50:54 -!- AnotherTest has quit (Quit: ZNC - http://znc.in).
21:51:15 <zzo38> But I am not quite sure if Haskell (or any other existing programming language) is particularly suitable which is why I had idea make the new kind
21:51:37 <myname> last (ys ++ [e]) = e
21:51:40 <myname> love it.
21:53:20 <zzo38> But also just some of the rules of the game is too klugy or otherwise inelegant in my opinion and I would have done differently
21:53:34 <Sgeo> I just remembered that mothy does have an end of the world song for the 2nd-3rd era
21:53:41 <Sgeo> So where's the end of the 3rd era song?
21:55:49 <zzo38> (Xturtle is a superset of RDF Turtle; I have written a Xturtle parser in C. WEB is the programming language TeX is written in; it combines TeX with Pascal codes and can be preprocessed into a Pascal code to be sent to a Pascal compiler; CWEB is similar but with C instead, and then you can have RDFWEB to write this new one with.)
21:58:10 <Sgeo> There's a part of the song that's intentionally musically bad, which makes sense but makes me sad
22:05:25 -!- ais523 has quit.
22:05:27 -!- callforjudgement has joined.
22:10:15 -!- callforjudgement has quit (Ping timeout: 265 seconds).
22:18:49 <\oren\> sgeo: I know a song that has intentional noise that sounds like a speaker being plugged in
22:23:34 -!- sc00fy has joined.
22:25:51 -!- ^v has joined.
22:26:47 <Sgeo> \oren\, o.O link?
22:28:43 <pikhq> Huh. I did not know that accredited CS programs were not that common. Like, there's actually a number of people walking around with CS degrees that aren't worth the paper they're printed on.
22:28:47 <pikhq> This explains a lot.
22:29:13 <myname> huh?
22:31:01 <pikhq> myname: In the US, there's not much formal regulation on higher education at all.
22:31:37 <pikhq> In essence, any organization can hand out pieces of paper and call them degrees in whatever they feel like with whatever justification they feel like.
22:32:09 <myname> lol
22:32:16 <pikhq> What makes them "real" is a third party organization that people trust the opinion of, accrediting a degree program as meeting their standards.
22:33:27 <pikhq> Ooor people just recognizing the degree as having value regardless of what an accrediting body says.
22:34:10 <pikhq> In the case of computer science, there's a large number of degree programs with no accrediting whatsoever.
22:34:38 -!- APic has joined.
22:34:43 <pikhq> Which is just fine if it's Stanford (yes, really, Stanford's CS program is not accredited), but not so much if it's Univeristy of Bumblefuck KS.
22:42:05 -!- oerjan has joined.
22:43:16 <hppavilion[1]> I'm back
22:47:07 <Vorpal> pikhq, really? Stanford is not accredited?
22:47:16 <pikhq> Yes.
22:47:19 <pikhq> Really.
22:47:21 <Vorpal> pikhq, I guess they just think that they are well known enough they don't need it?
22:47:26 <pikhq> I believe that's just their CS program in particular.
22:47:32 <Vorpal> (they probably are)
22:47:33 <pikhq> Harvard has the same deal.
22:47:35 <Vorpal> Oh okay, so not that
22:47:42 <oerjan> hppavilion[1]: currying means that you only need a syntax for applying a combinator to _one_ argument.
22:47:47 <Vorpal> pikhq, what about MIT?
22:47:52 <pikhq> MIT is accredited.
22:47:57 <Vorpal> hm
22:47:59 <pikhq> Stanford is known for CS *in particular* though.
22:48:10 <oerjan> e.g. unlambda's `, which is normally prefix but could easily be postfix instead.
22:48:27 <Vorpal> pikhq, really though, Harvard, Stanford and MIT wouldn't need to be accredited. Their name carries enough weight on it's own
22:48:37 <pikhq> Yeah.
22:48:39 <hppavilion[1]> Actually, a CS degree from the University of Bumblefuck KS is good for a cryptography job
22:48:48 <hppavilion[1]> They teach that class using Malebolge
22:48:53 <Vorpal> XD
22:49:05 <oerjan> *Malbolge
22:49:12 <hppavilion[1]> I keep mixing those two up
22:49:25 <Vorpal> Malebolge is not a thing even afaik?
22:49:26 -!- atrapado has quit (Quit: Leaving).
22:49:32 <oerjan> one is a programming language named for a circle of hell, the other is a circle of hell hth
22:49:34 <Vorpal> So isn't it typoing rather than mixing it up
22:49:40 <Vorpal> oh
22:50:57 <oerjan> yes, but the typo is official
22:51:56 <Vorpal> right
22:51:58 <Vorpal> good night
22:57:01 <hppavilion[1]> {1, 2}+{3, 4} = {4, 5, 6}, correct?
22:57:20 <hppavilion[1]> I've started work on LIME (the LIME Integrated Mathematical Environment)
22:57:24 <oerjan> PLAUSIBLE
22:57:35 <hppavilion[1]> Is it or is it not?
22:58:04 <oerjan> it's a common notation. you are making the error of thinking that math notation is unambiguous hth
22:58:38 <oerjan> i'd say it's the most likely interpretation of the left side, assuming no other context.
22:58:43 <hppavilion[1]> Ah
22:59:16 <hppavilion[1]> And {1, 2}+3 = {1, 2}+{3}={4, 5}?
22:59:21 <hppavilion[1]> s/=/ = /
22:59:30 <oerjan> fairly reasonable.
22:59:34 <hppavilion[1]> OK
22:59:47 <hppavilion[1]> I'm making an environment in which one can do a bunch of mathy things
23:00:23 <oerjan> the thing is, + is ridiculously overloaded, and there is an old convention using it for boolean algebra.
23:00:39 <oerjan> in which case it could be union instead.
23:00:58 <oerjan> (boole originally used addition and multiplication notation)
23:01:33 <hppavilion[1]> I'm going to use & for union
23:01:53 <hppavilion[1]> I'm going to try to make this some sort of hybrid beetween Traditional Mathematics and Programming
23:04:00 <oerjan> & for union is a little confusing, since when you treat bitfields in C as boolean algebras that's exactly _intersection_
23:04:47 <oerjan> so the opposite.
23:05:06 <hppavilion[1]> I'm trying to figure out where I'm going with this xD
23:05:11 <shachaf> yes, & is intersection
23:08:24 <hppavilion[1]> Should I make LIME at all memory-efficient, or should I just use BigFloat for everything?
23:08:32 <hppavilion[1]> Not sure if Python even /has/ BigFloat
23:17:34 -!- Patashu has joined.
23:26:25 <hppavilion[1]> OK
23:26:33 <hppavilion[1]> I think I've defined a sufficent arithmetic AST
23:27:10 <hppavilion[1]> Should I add Computer Sciency stuff to it?
23:27:14 <hppavilion[1]> Actually
23:27:15 <hppavilion[1]> Yes
23:27:30 <hppavilion[1]> I'm going to make the AST support computer sciency things and save other things for the parser
23:30:28 <hppavilion[1]> So Computer Sciency-ness will be an option that the parser determines
23:30:29 <hppavilion[1]> Wait
23:30:35 <hppavilion[1]> But that might not work...
23:31:52 <hppavilion[1]> oerjan: Your professional opinion. Is making ^ work as bitwise xor OR as exponentation depending on the option a good idea for a program targetted at mathematics students?
23:32:26 <hppavilion[1]> It'd be a pain to implement, but it might be a good idea
23:34:46 <oerjan> both are sort of about lacking the real math symbols (superscripts or that sum-in-a-circle thing)
23:34:55 <hppavilion[1]> Yeah...
23:35:13 <hppavilion[1]> I want this to be easy to use when typed from a keyboard
23:35:35 <oerjan> what if they want to use both?
23:35:55 <hppavilion[1]> Perhaps I could use a LaTeX-like syntax where if you type, for exmple, "\lambda" it would come out as <insert little lambda here>?
23:36:11 <hppavilion[1]> oerjan: Oh, forgot to mention that if CS mode is on, ** is exponentation
23:36:17 -!- Patashu has quit (Ping timeout: 268 seconds).
23:36:28 -!- Patashu has joined.
23:36:57 <hppavilion[1]> LIME is actually going to parse every instruction into two different ASTs: Algebraic and Arithmetical
23:37:29 <hppavilion[1]> (Arithmetical encompassing Arithmetic, Geometry, a bit of algebra, Set Theory, etc.)
23:38:38 <hppavilion[1]> (So if you want to get the sum of the set of 1 and x and a triangle, Arithmetical is used, whereas if you want to rearrange an expression, Algebraic is used)
23:51:40 <tswett> hppavilion[1]: I wouldn't use the notation {1,2} + 3.
23:51:57 <hppavilion[1]> tswett: I wouldn't either, but someone might
23:52:56 <tswett> The fact that someone might want a feature doesn't necessarily mean that you should implement it.
23:55:43 <hppavilion[1]> It's valid mathematical notation, as far as I know
←2015-09-18 2015-09-19 2015-09-20→ ↑2015 ↑all