00:00:06 FireFly: It is. I think it's clever and awesome, but it's probably just stupid. 00:00:30 I mean, the efficiency is probably going to be atrocious. Then again, Kastor isn't a particularly quick language in the first place. 00:01:38 You know, in SQL, an "OUTER SELECT" would make perfect sense. 00:01:57 FireFly: The only problem I can think of with that syntax, though, is if you want to write a float in hex for some reason: You think it should be 0xABC.123, but it'd actually have to be 0xABC.0x123 and there's no way to fix it without making floats just a builtin, which everytime I think about becomes a better and better idea but I'm probably not going to do anyway. 00:02:23 hppavilion[1]: so 1.01 would be interpreted as 1.1, aye? 00:03:12 tswett: ... 00:03:16 Fuckfuckfuckfuckfuck 00:03:21 Roll with it. 00:03:24 No. 00:03:40 It's designed to still be usable, despite drawing on Eso. 00:03:41 Okay. 00:04:22 Ooh, here's an idea. 00:04:32 In addition to the . operator, there's a .0 operator, a .00 operator, and so on. 00:04:40 So that would be: 1 .0 1 00:05:00 How to do an OUTER SELECT: Add a NULL row to each table. Take the cartesian product of all those tables. Filter by the WHERE conditions, treating each one involving a NULL as satisfied. Project as desired. Take only the maximum tuples. 00:05:03 Sump'm like that. 00:06:45 -!- mauris has joined. 00:08:55 -!- mauris__ has quit (Ping timeout: 240 seconds). 00:11:19 tswett: But that doesn't fit the operator syntax xD. But no, I'm just sticking with float. 00:11:53 Here's another idea. 00:12:01 Reverse the digits of the rhs part. 00:12:17 The expression 120 . 240 represents 120.042. 00:13:39 tswett: No. This language is meant to actually be usable. 00:13:47 Roger. 00:13:56 Like, python-usable if speed isn't a big issue. 00:14:08 If I ever finish Tokiber, I'll create an Esolang page for it. 00:14:33 Usability will be a major goal, but *usefulness*, not so much. 00:17:07 I'm currently working on how integer tokens work 00:18:00 Basically, 0b[binary number], 0q[quaternary number], 0o[octal number], and 0x[hex number] are builtin, along with 0n[decimal base]_[arbitrary-base number]. 00:18:43 You can define how arbitrary-base numeric alphabets behave; by default they support 0-9a-zA-Z as digits, so you can't yet do base64 constants. 00:19:44 All numbers support underscores wherever you like (except leading (that's a variable) and trailing (a special). That does not work). 00:21:25 Also, you can define your own encodings that just feed a class constructor or a function a string; e.g. 0rn_VII could be programmed to return 0q13 (7) 00:22:03 (0rn_VII works because any numeric or letter-like character can go after a 0[type]_) 00:34:30 OK, finished the BNF 00:36:58 Things I would not recommend: having a moustache 00:40:35 How so? 00:40:59 -!- oerjan has joined. 00:41:20 It itches 00:41:23 It itches so much 00:41:32 nah 00:41:39 its fine 00:41:43 to tame it 00:41:50 with wax 00:42:11 quintopia: it's not long enough yet 00:44:28 -!- boily has joined. 00:45:06 -!- heroux has quit (Ping timeout: 240 seconds). 00:45:34 -!- heroux has joined. 00:45:48 Fuckfuckfuckfuckfuck <-- design is hard. 00:46:01 oerjan: Yes. It is. 00:47:43 hppavellon[1]! tell me all. 00:48:11 bohily 00:50:06 hellørjan! 00:51:19 <\oren\> ヘロルヤン 00:52:43 \helloren\. I believe ヘレリャン is closer hth 00:53:34 i believe you're evil for making me use google translate hth 00:54:27 <\oren\> ゲハハハハハハ 00:56:47 オホホホホホホ 00:57:53 i knew that was a bad idea. 00:58:01 ondskapsfulle beist 01:00:02 boily: I'm making a programming language called Kastor. It draws on Eso, but is made for general usage. 01:00:09 Vaguely like perl. 01:00:14 perl is eso. 01:00:47 It is most definitely eso. 01:01:21 boily: I'm currently working on how integers work; I took the _ syntax from Perl and am allowing custom 0c prefix codes 01:03:15 -!- mauris has quit (Ping timeout: 272 seconds). 01:07:45 It is a weird experience listening to a video from ICFP and there being a familiar voice asking a question at the end 01:09:28 Although, I guess, not that weird 01:09:39 I'd imagine it'd be pretty weird if I heard my own voice there 01:18:30 -!- Phantom_Hoover has quit (Read error: Connection reset by peer). 01:26:53 -!- \oren\ has joined. 01:41:09 -!- andrew has joined. 01:57:10 -!- hppavilion[1] has quit (Ping timeout: 244 seconds). 02:15:37 -!- hppavilion[1] has joined. 02:17:54 -!- boily has set topic: The ウフフ channel. | /ɛ̃ˈglɪʃ spɛˈliŋ ʀɘfɔʀm/ | https://dl.dropboxusercontent.com/u/2023808/wisdom.pdf http://codu.org/logs/_esoteric/ http://tunes.org/~nef/logs/esoteric/?C=M;O=D | https://esolangs.org/. 02:18:11 -!- boily has quit (Quit: IMAGINARY CHICKEN). 02:20:25 -!- hppavilion[1] has quit (Ping timeout: 244 seconds). 02:29:57 -!- hppavilion[1] has joined. 02:30:05 -!- mauris has joined. 02:34:44 -!- llue has quit (Read error: Connection reset by peer). 02:35:00 -!- llue has joined. 02:39:47 -!- \oren\ has quit (Ping timeout: 264 seconds). 02:41:22 -!- \oren\ has joined. 02:53:01 I've just integrated my first Unicode character into Kastor :) 02:53:05 Well, two 02:53:46 Specifically, ⧼ and ⧽ to denote arrays/vectors 02:53:55 what is kastor? 03:10:38 pizzarama 03:11:21 <\oren\> `unidecode ⧼⧽ 03:11:22 ​[U+29FC LEFT-POINTING CURVED ANGLE BRACKET] [U+29FD RIGHT-POINTING CURVED ANGLE BRACKET] 03:11:35 <\oren\> I don't have those 03:11:44 <\oren\> need to add them 03:11:47 shocking 03:12:13 <\oren\> yeah, i'm shocked, I thought I had all the damn operators already 03:17:15 OK, I changed the symbols because I was using the wrong ones xD 03:18:27 I'm now using ⟨⟩ instead of ⧼⧽ (the former ones were curved and looked a bit nicer, but I prefer the chevrons because they're more typical) 03:18:50 \oren\: It's from misc operators, as it turns out 03:19:15 izabera: Programming language I'm making based on the principal that languages should be usable, but combined with all the teachings of Esobuddha. 03:22:31 Huh. Indian programmers often refer to {"{", "}"} as "Flower Brackets" 03:22:44 (Notice that I used set notation there solely because it's more confusing) 03:39:58 Does unicode lack the logical xnor? 03:40:44 This? https://reference.wolfram.com/language/ref/character/Xnor.html 03:41:07 <\oren\> AGH, that block (misc math sybols B) is full of annoying crap! 03:41:51 Dammit, there isn't one in the entire fucking formal logic 03:42:30 zgrep: Thank you! There we go! 03:42:55 Google helps, you know, rather than digging through a table of unicode values... 03:44:10 Dammit, fonts don't support it 03:44:14 Not many, at least 03:44:40 <\oren\> tell me the code point and I'll add it if I can draw it 03:45:44 \oren\: F4A2 03:46:05 I might have to embed your font into my IDE for Kastor, \oren\ xD 03:46:40 Wouldn't that be cool? 03:46:58 <\oren\> thsat's a private use character point. 03:47:19 <\oren\> e.g. not an official unicode character 03:47:27 Oh 03:47:29 Shit. 03:47:37 That's a problem. 03:47:44 <\oren\> so even GNU unifont won't have it 03:48:46 I need a surrogate symbol to represent logical xor... It has to look good among 03:48:46 ∧∨⊻⊼⊽ 03:49:08 My problem is that even formal logicians don't have a symbol for some reason xD 03:49:35 <\oren\> xor is the same as not equal, so xnor would be = 03:50:31 \oren\: Except the ∧∨⊻⊼⊽ symbols are type-insensitive, being the "logical" versions of the operator: ''==0 evaluates to false, but ''0 evaluates to true. 03:51:09 <\oren\> you could use some other variant of = 03:51:13 I could 03:51:35 <\oren\> ≖≗≘≙≚≛≜≝≞≟ any of these look good 03:52:08 Perhaps ≚? 03:52:12 Oh, you found that one xD 03:52:28 <\oren\> and those are all in my font! 03:52:32 Wait, no 03:52:37 I want the other one 03:52:54 Wait, I didn't send the message those last two posts were referring to xD 03:53:51 ≙ makes the most sense, as it's "="+"∧", so it's logical. Only problem is people might confuse it for an assignment operator, but oh well 03:54:23 <\oren\> I prefer an arrow for assignemtn 03:54:47 <\oren\> a ← 4 03:54:56 Wait, no 03:55:13 ≚ is or. So I'll use that. 03:58:00 \oren\: Maybe I'll use that. 03:58:55 does anyone know how to check if a process has a fd that points to a given file? 03:59:01 how does lsof do it? 03:59:29 all i can think of is to readlink every file in /proc/pid/fd 03:59:50 \oren\: Kastor currently has planned 12 different types of builtin collection xD 04:01:10 -!- llue has quit (Quit: That's what she said). 04:04:31 \oren\: You must know a lot of unicode characters from fontsmithing. Is there a good type of bracket I could use for bags? 04:07:05 <\oren\> ⦃⦄ 04:07:16 <\oren\> `unidecode ⦃⦄ 04:07:17 ​[U+2983 LEFT WHITE CURLY BRACKET] [U+2984 RIGHT WHITE CURLY BRACKET] 04:08:04 \oren\: I just was thinking that when I openned hexchat to see that suggestion. That was awesome. 04:13:18 13 possible collections. Wow. 04:13:34 Oh, ordered bag 04:13:53 <\oren\> that would just be a sorted array dudu 04:13:59 <\oren\> s/dudu/dude/ 04:16:15 \oren\: That's one way of representing it, but not the only way 04:16:30 And thus I'm including it 04:16:43 However, no bagdicts or anything. 04:20:17 Because that doesn't make any sense, and more importantly, it looks almost like "big dicks" and no just no. 04:33:03 [wiki] [[Combinatory logic/Analysis of combinators]] http://esolangs.org/w/index.php?diff=45554&oldid=45461 * Hppavilion1 * (+421) Some stuff, I hope 04:33:10 Yay! 04:42:01 <\oren\> hppavilion[1]: well in that case the correct character is ⇫ 04:42:53 <\oren\> or maybe Ⰴ or Ⰲ 04:45:41 -!- ent0nces has joined. 04:46:41 \oren\: ? 04:46:58 My font won't render any of those characters, so I don't know what you're talking about 04:47:43 It won't render in neoletteres either 04:48:08 ... 04:48:14 I think I'm going to keep IRC on neoletters 04:50:26 -!- idris-bot has quit (Ping timeout: 260 seconds). 04:51:15 -!- Melvar has quit (Ping timeout: 255 seconds). 05:00:14 -!- hppavilion[1] has quit (Quit: WALRUS MAAAAAAAAAAAAN). 05:00:35 -!- hppavilion[1] has joined. 05:04:17 Is a multiset a bag? 05:06:07 Wait, I just remembered I might not want to use x ← 5 as assignment unless there's a good-looking augmented assignment syntax for ← assignment. Do you have anything, \oren\? 05:14:12 hppavilion[1]: afaik 05:28:28 -!- bb010g has joined. 05:56:10 -!- ent0nces has quit. 06:00:11 -!- hppavilion[1] has quit (Ping timeout: 252 seconds). 06:11:11 -!- heroux has quit (Ping timeout: 250 seconds). 06:12:06 -!- heroux has joined. 06:34:05 -!- hppavilion[1] has joined. 06:37:13 [wiki] [[Semantic Brain]] http://esolangs.org/w/index.php?diff=45555&oldid=45548 * Zerk * (-46) Fixed an infinite loop in cumulative adder code. 06:42:25 re. today's girl genius: i bet 10 zorkmids that's othar 06:53:10 -!- hppavilion[1] has quit (Ping timeout: 260 seconds). 06:57:11 -!- andrew has quit (Remote host closed the connection). 06:59:04 -!- andrew has joined. 07:03:52 -!- andrew has quit (Remote host closed the connection). 07:04:33 -!- hppavilion[1] has joined. 07:04:46 hppavilion[1]: what's wrong with just using circled plus for xor? 07:04:47 oerjan: afayk what? I was afk. 07:04:59 b_jonas: No, not xor, xnor 07:05:05 oh that 07:05:12 for that, triple horizontal line 07:05:23 hppavilion[1]: afa what you said 2 lines before hth 07:05:24 b_jonas: That's "is defined as" 07:05:37 Ah 07:06:21 oh hm 07:06:27 <=> 07:06:43 oerjan: What are you trying to help me with? xD 07:07:35 i changed the subject hth 07:07:39 the xnor 07:07:59 ⇔ 07:08:16 as a boolean proposition operator 07:09:14 I still say triple horizontal line. Isn't that what Knuth uses these days? 07:09:44 or maybe just ↮ without the slash 07:10:17 hppavilion[1]: https://en.wikipedia.org/wiki/Logical_biconditional has several options 07:10:41 oerjan: I believe I settled on ≚ 07:10:52 I'll check out that page 07:11:28 of course you settled on something my client cannot display 07:11:42 well it couldn't display the last i suggested either 07:14:40 oerjan: It's the equal sign with an "or" sign above it; neoletters supports it. 07:15:36 OKAY 07:16:34 The PROBLEM with that is that it's confusing as it looks like an assignment operator 07:17:00 Should I implement ⚢⚣⚤⚥⚦⚧⚨⚩ as operators, allow them to be included in names, or do something else with them? (xD) 07:20:08 -!- J_Arcane has quit (Ping timeout: 246 seconds). 07:22:53 Same goes for ♂♀, ☿♁♃♄♅♆♇, ♈♉♊♋♌♍♎♏♐♑♒♓, ♔♕♖♗♘♙/♚♛♜♝♞♟, ♠♡♢♣♤♥♦♧, and ⚭⚮⚯ 07:25:22 And why not ⚊ ⚋ / ⚌ ⚍ ⚎ ⚏ / ☰ ☱ ☲ ☳ ☴ ☵ ☶ ☷ 07:33:52 Should I use the 07:33:52 ⊻⊼⊽ for logical operations XOR, NAND, and NOR, or should I switch to the arrow notation? 07:34:07 I think I'll stick with these and reserve arrows for othere purposes 07:41:43 hmm.... 07:52:09 -!- Patashu has joined. 08:00:12 -!- bb010g has quit (Quit: Connection closed for inactivity). 08:28:43 [wiki] [[Aubergine]] http://esolangs.org/w/index.php?diff=45556&oldid=45455 * Quintopia * (+77) /* Examples */ 08:32:46 [wiki] [[Cellular automaton]] http://esolangs.org/w/index.php?diff=45557&oldid=30870 * 202.99.113.80 * (+11) /* Relation to esoteric programming */ 08:33:02 -!- hppavilion[1] has quit (Ping timeout: 260 seconds). 08:42:13 [wiki] [[Purple]] N http://esolangs.org/w/index.php?oldid=45558 * Quintopia * (+3993) Created page with "{{infobox proglang |name=Purple |paradigms=imperative |author=[[User:Quintopia]] |year=[[:Category:2015|2015]] |class=[[:Category:Turing complete|Turing complete]] |refimpl=Se..." 08:43:27 -!- AnotherTest has joined. 08:46:14 [wiki] [[BitShift]] http://esolangs.org/w/index.php?diff=45559&oldid=45549 * Bas * (-5) 08:49:35 [wiki] [[Purple]] http://esolangs.org/w/index.php?diff=45560&oldid=45558 * Quintopia * (-8) bleh 08:53:11 -!- AnotherTest has quit (Ping timeout: 272 seconds). 09:19:12 -!- andrew_ has joined. 09:36:32 -!- oerjan has quit (Quit: Later). 09:40:25 [wiki] [[Aubergine]] http://esolangs.org/w/index.php?diff=45561&oldid=45556 * Quintopia * (+5) /* Examples */ 09:40:40 [wiki] [[Aubergine]] http://esolangs.org/w/index.php?diff=45562&oldid=45561 * Quintopia * (+0) /* ]Hello, world! */ 09:41:52 [wiki] [[Aubergine]] http://esolangs.org/w/index.php?diff=45563&oldid=45562 * Quintopia * (+4) /* Examples */ 09:44:58 [wiki] [[Purple]] http://esolangs.org/w/index.php?diff=45564&oldid=45560 * Quintopia * (+9) /* Examples */ 09:47:02 -!- mroman has joined. 09:47:05 fnard 09:59:04 -!- ais523 has joined. 10:09:48 -!- andrew_ has quit (Remote host closed the connection). 10:12:47 [wiki] [[Hello world program in esoteric languages]] http://esolangs.org/w/index.php?diff=45565&oldid=45232 * Quintopia * (+224) 10:13:31 [wiki] [[Hello world program in esoteric languages]] M http://esolangs.org/w/index.php?diff=45566&oldid=45565 * Quintopia * (+3) /* Aubergine */ 10:16:56 [wiki] [[Language list]] http://esolangs.org/w/index.php?diff=45567&oldid=45464 * Quintopia * (+13) /* P */ 10:17:50 [wiki] [[Language list]] http://esolangs.org/w/index.php?diff=45568&oldid=45567 * Quintopia * (+16) /* U */ 10:23:15 -!- callforjudgement has joined. 10:23:30 -!- ais523 has quit (Ping timeout: 244 seconds). 10:33:55 [wiki] [[User:Quintopia]] http://esolangs.org/w/index.php?diff=45569&oldid=42578 * Quintopia * (+214) 10:35:17 -!- callforjudgement has changed nick to ais523. 10:35:19 well I just answered a haskell question on stackexchange 10:35:24 let the hatred begin :) 10:41:15 http://codepad.org/xZCenjhm <- but technically that's how you could implement "inheritance" of some sorts 10:47:59 [wiki] [[Purple]] http://esolangs.org/w/index.php?diff=45570&oldid=45564 * Quintopia * (+7) /* Python 2 */ 10:56:48 -!- ais523 has quit. 11:20:06 -!- Phantom_Hoover has joined. 11:20:14 -!- Froox has quit (Read error: Connection reset by peer). 11:20:19 -!- Frooxius has joined. 11:21:38 -!- Frooxius has quit (Read error: Connection reset by peer). 11:21:47 -!- Frooxius has joined. 11:31:48 -!- boily has joined. 11:45:47 -!- gniourf has quit (Quit: Leaving). 11:55:16 @massages-loud 11:55:16 You don't have any messages 11:55:51 int-e: int-ello. is it possible to specialcase lambdabot for loud massages please? 11:57:04 @sausages 11:57:05 Unknown command, try @list 12:01:37 -!- Patashu has quit (Ping timeout: 265 seconds). 12:02:45 -!- Patashu has joined. 12:05:41 -!- Patashu has quit (Remote host closed the connection). 12:06:19 -!- Patashu has joined. 12:13:22 -!- lleu has joined. 12:19:13 -!- Melvar has joined. 12:28:25 -!- Frooxius has quit (Read error: Connection reset by peer). 12:28:33 -!- Frooxius has joined. 12:29:02 -!- Patashu has quit (Ping timeout: 260 seconds). 12:31:07 -!- boily has quit (Quit: UNREADABLE CHICKEN). 12:51:11 I wonder how many people are bilingual in two sign languages 12:59:07 Taneb: bilingual to at least what level of knowledge? 12:59:25 At least conversational 13:01:47 -!- Frooxius has quit (Quit: *bubbles away*). 13:28:46 -!- ais523 has joined. 14:24:08 -!- ais523 has quit. 14:24:39 -!- ais523 has joined. 14:31:13 -!- ais523 has quit. 14:32:43 -!- ais523 has joined. 14:49:12 What's the best data structure in Haskell for writing interpreters on a sequence of instructions where you need to do forwards and backwards jumps? 14:49:25 Map? HashTable? Array? 14:49:50 and you can't parse it neatly like Brainfuck data BF = Loop [BF] | Increment 14:49:56 oh no, someone's going to mention lens aren't they 14:50:11 Well, Taneb is online so 14:50:15 What 14:50:16 there's the chance of that happening, yes. 14:50:16 I am 14:50:36 Huh 14:50:41 mroman: I'd use vector 14:51:41 Or a skiplist, maybe??? 14:52:18 Just precompute the target address for each jump hth 14:53:32 skiplists in haskell? 14:53:37 does that even work? 14:54:25 Wait wait! 14:54:32 Oh derp. 14:54:43 Was scrolled up. 14:55:00 well I guess I can't precompute every jump anyway 14:56:40 @tell hppavilion[1] Wait wait for bags you must use ⟅⟆ as brackets. {LEFT,RIGHT} S-SHAPED BAG DELIMITER 14:56:41 Consider it noted. 14:58:34 that unicode character name is irrefutable 15:02:16 More importantly those look awesomely bag-like. 15:03:29 💰💰💰 15:04:22 Pretty much, yeah. 15:04:38 ⟅$⟆ 15:05:02 Combining bag characters 15:05:02 I wonder if I can do indentation based thingies in parsec 15:05:08 should be possible 15:05:17 Hmm, delimiters as combining characters 15:05:32 -!- Welo has joined. 15:05:37 surely you just need a COMBINING BOTTOM OF BAG to place below the $? 15:06:16 mroman: I think it’s troublesome. There’s been a paper about indentation sensitive parsing, but I don’t remember if there’s a lib based on it. 15:07:32 ⟅$̲⟆ 15:11:37 You can, of course, implement any computable grammar next to parsec. 15:13:44 idea: what about a language where combining characters are operators 15:14:11 The zalgo programming language 15:15:02 (Gives a new meaning to code density...) 15:15:06 https://hackage.haskell.org/package/indents-0.3.3/docs/Text-Parsec-Indent.html 15:26:18 aw fuck 15:26:19 yeah 15:26:22 you have to use lots of tries 15:26:23 :( 15:27:38 but that doesn't soom to work either 15:29:54 the problem is that if you expect 6 spaces to be there 15:30:04 but there are only three there (which means block end) 15:30:11 then parsec will still expect those 3 additional spaces 15:31:36 https://hackage.haskell.org/package/indents-0.3.3/docs/Text-Parsec-Indent.html 15:31:38 although there is this 15:32:16 You could embrace it instead. 15:34:14 why not begin ... end 15:34:15 or 15:34:18 begin ... nigeb 15:34:43 procedure ... while ... elihw .. erudecorp 15:34:51 -!- J_Arcane has joined. 15:34:54 man that'd be annoying 15:35:17 foreach x in y do ... hcaerof 15:35:56 I'm vaguely sure I've seen "erudecorp" in that context before (presumably as a joke) 15:36:13 There are plenty of rude corporations in the see 15:36:15 (vaguely sure = a little less sure than "pretty sure") 15:36:56 `learn erudecorp is the shortform of e-rude corporation. The term is used for corporations that are electronically rude. 15:36:59 Learned 'erudecorp': erudecorp is the shortform of e-rude corporation. The term is used for corporations that are electronically rude. 15:37:39 One using german swear speech would be fun 15:38:02 fürjedes x in y friss das ... du sack 15:38:31 versuche x menno .... so'n müll 15:38:47 = try: x except: .... 15:42:05 öffentlich statisch hauptmethode(Schnur[] argumente) ist ganz i; solange(i < 10) mach print(i) aber schnell gecheckt? 15:43:29 * J_Arcane reconstructs a code snippet by hand from a Twitter image, thus learning why he should use version control even for small projects. 15:47:36 -!- ais523 has quit. 15:48:16 http://codepad.org/858XP1XQ 15:48:28 -!- ais523 has joined. 15:48:35 -!- ais523 has quit (Changing host). 15:48:35 -!- ais523 has joined. 15:51:56 [wiki] [[List of ideas]] http://esolangs.org/w/index.php?diff=45571&oldid=44809 * 160.85.232.226 * (+413) lolcode in german. 16:01:36 mroman: Now add that modifiers have to be properly inflected for what they go on. 16:02:18 Also, “Schnur”, really? <ω< 16:03:22 well 16:03:24 yes 16:03:27 Schnur 16:03:36 double -> doppelt 16:03:42 float -> schwimm 16:04:00 >ω< 16:07:02 “Zeichenkette”, “Gleitkommazahl” (“doppeltgenaue” or “einfachgenaue”). 16:07:20 Niemals 16:07:24 Das wäre ja nicht Lustig. 16:07:50 KRANKENHAUSKIOSKVERKAEUFERIN 16:07:55 Ich weiß, ich konnte das nur einfach nicht so stehenlassen. 16:08:39 bool -> buhl 16:08:57 Zwischengesicht Vergleichbar 16:09:32 Amusing: “chain” and “Kette” are cognate, but not Germanic; they’re from Latin “catena”, but in the English case of course it got filtered through Old French first. 16:10:43 (“Schnittstelle”) 16:14:21 -!- J_Arcane has quit (Ping timeout: 255 seconds). 16:23:02 Chain in Polish is łańcuch 16:23:04 Probably not cognate 16:27:43 -!- rdococ has joined. 16:28:10 Melvar: of course. the Mormann warriors have learnt that word from the Roman soldiers who took their lived ones away as slaves chained up 16:47:59 -!- J_Arcane has joined. 16:49:46 schwimm. oh my god 17:04:48 -!- Guest23593 has joined. 17:12:57 -!- AnotherTest has joined. 17:25:09 Ach du liebe Güte. 17:26:02 There will also be a swiss german dialect of it 17:26:11 maybe 17:26:48 -!- Guest23593 has quit (Remote host closed the connection). 17:43:31 -!- Welo has quit (Quit: Leaving). 17:53:48 mauris: to float = schwimmen 17:53:56 float imperative => schwimm 17:53:59 i know! 17:54:02 it's just funny 17:54:06 It's an imperative language after all! 17:54:10 haha 17:54:57 Well, depends … sometimes you want “schweben” instead. 18:07:07 I'm watching "Best of Donald Trump" 18:07:22 makes a nice sitcom 18:10:18 wait 18:10:24 that wrestling video with donald trump 18:10:27 is this for real? 18:11:08 what the hell is this 18:12:44 (real for wrestling purposes) 18:22:43 -!- bb010g has joined. 18:29:14 -!- mroman has quit (Quit: Lost terminal). 18:49:23 -!- mauris has quit (Ping timeout: 264 seconds). 18:54:58 -!- gniourf has joined. 19:08:10 -!- hppavilion[1] has joined. 19:13:36 I need a good name for a heavily symbolic (as in, gets-its-syntax-from-"Misc. Symbols"-symbolic) language. I'm currently calling it "Langdon" 19:16:11 How about Apollo? I might roll it in with Kastor in a way 19:17:21 Even better, I could just roll my ideas for it into UniFunge and name UniFunge apollo. 19:17:24 I think I'll do that 19:18:27 [wiki] [[Special:Log/move]] move * Hppavilion1 * moved [[User:Hppavilion1/UniFunge]] to [[Apollo]]: Came up with a good name for the language 19:19:19 [wiki] [[Apollo]] http://esolangs.org/w/index.php?diff=45574&oldid=45572 * Hppavilion1 * (-7) Fixed names for new page 19:21:13 Actually, I think I've changed my mind xD 19:22:00 [wiki] [[Apollo]] http://esolangs.org/w/index.php?diff=45575&oldid=45574 * Hppavilion1 * (+8) Undo revision 45572 by [[Special:Contributions/Hppavilion1|Hppavilion1]] ([[User talk:Hppavilion1|talk]]) 19:22:25 [wiki] [[Special:Log/move]] move_redir * Hppavilion1 * moved [[Apollo]] to [[User:Hppavilion1/UniFunge]] over redirect: Changed mind. Sorry. 19:23:01 And... on to lunch. 19:27:44 -!- hppavilion[1] has quit (Ping timeout: 265 seconds). 19:29:07 -!- hppavilion[1] has joined. 19:29:09 Should I use ≪ and ≫ instead of << and >> for bitshifts in Kastor? 19:29:37 Perl6 uses « and » as quote marks, that can be typed as << and >> 19:29:41 I'm not sure what it uses for shifts 19:29:45 knowing Perl, probably also << and >> 19:29:56 Probably 19:36:00 ais523: for delimiting strings? 19:36:41 FireFly: so in Perl6, < and > are literal list constructors that interpret everything between them raw and split on spaces 19:36:51 i.e. = ('foo', 'bar', 'baz') 19:36:56 Ah, okay 19:36:59 « and » are like that, but interpolate 19:37:06 I see 19:37:20 «foo $x baz» = ("foo", "$x", "baz") = ("foo", $x, "baz") 19:37:37 err, ("foo", ~$x, "baz"), $x gets stringified 19:45:17 -!- idris-bot has joined. 19:48:28 -!- hppavilion[2] has joined. 19:48:51 hppavilion[2]: Did you see my message? 19:49:04 Melvar: Yes. I might change it to that. 19:49:08 Though I like the existing ones too 19:49:15 Nm lambdabot now alerted me to your answer. 19:49:45 Because if I use the white brackets, then I can logically have both bags and ordered bags 19:49:58 -!- hppavilion[1] has quit (Ping timeout: 265 seconds). 19:50:35 Are those … hmm … lists with a fast count operation? 19:51:04 Melvar: They're basically just ordered lists, at least that's one way to implement them 19:51:35 But yes, they're lists that store the number of times a value occurs in them. And you can't have a value occur at multiple indexes, unless I decide you can. 19:51:53 Huh? 19:52:08 If you can’t have one at multiple indices, how can you have any more than one? 19:52:30 Melvar: In literals you can have them at multiple indices, but they get consolidated into a single bag basically 19:52:59 I think I'll let my language have operators in prefix, postfix, infix, circumfix, precircumfix, postcircumfix, and incircumfix, just to one-up perl. 19:53:17 <ω< 19:53:55 Agda already has fully general mixfix, which merely has all those as special cases. 19:54:29 does incircumfix even make sens? 19:54:40 *sense 19:54:47 (what would it look like?) 19:54:58 _⟨_⟩_ 19:55:00 I guess along the lines of a[b]c but that's just a ternary 19:55:02 I presume. 19:55:10 (no reason the brackets have to match) 19:55:16 _?_:_ is topologically the same 19:55:17 ais523: a[b]c is an example of an incircumfix operator, but not necessarily one that will be used 19:55:25 Wait, you typed the exact same thing before me xD 19:55:54 I believe in Agda I’ve seen _[_]=_ for replaceAt in a vector. 19:56:01 But yes, that's an example of incircumfix; it is as a matter of fact ternary. I might not have any builtin though 19:56:35 There will also be associativities if I can figure it out, also taken from perl: right, left, chain, list, and whatever the other one perl has is 19:56:40 I guess I meant that the "circum" is suspect because there's no reason why the brackets would match 19:57:13 Anyway, for the ordered bags, if you enter one where the same value appears at multiple indices, where is the value going to be in the resulting orderedbag? 19:57:28 Melvar: The first occurence. Duh. 19:58:04 I disagree, not duh. How would I know you wouldn’t use the last occurrence? 19:58:33 You can ALSO declare associativity groups- for example, a>b>c is be equal to (a>b)&(b>c) 19:58:51 Melvar: OCaml has maps with multiple bindings 19:58:55 Melvar: Trial and error, or reading the fucking manual. Either one works. 19:59:04 where newer bindings shadow old ones, but don't remove them (you can delete the newer binding and see the older binding again) 19:59:15 No, asking you just now, that’s how I know. I just disagree that it’s duh. 19:59:16 strangely enough, this is its default sort of map 19:59:17 for some reason 19:59:26 I believe that Kastor currently has 14 builtin data structures xD 20:00:31 ( :let infixl 6 <=? 20:00:31 defined 20:01:07 Actually, derp, that won’t work. 20:01:11 ( :unlet 20:01:11 Undefined . 20:01:27 [wiki] [[User:Hppavilion1/UniFunge]] http://esolangs.org/w/index.php?diff=45578&oldid=45576 * Hppavilion1 * (+814) /* Δ Commands */ Astrological symbols 20:02:47 In case anyone wants to see the WIP documentation for Kastor, it's here: https://drive.google.com/folderview?id=0ByRvNdqqy3GPV1NfZmRwOFNxQ28&usp=sharing 20:05:17 -!- spiette has joined. 20:07:54 -!- ais523 has quit (Ping timeout: 260 seconds). 20:08:09 -!- ais523 has joined. 20:17:03 -!- hppavilion[2] has changed nick to hppavilion[1]. 20:20:07 ais523: hello 20:20:39 hi b_jonas 20:21:25 ais523: have you seen this Amycus esolanguage I mentioned a last time? 20:21:30 it turns out to be quite interesting, 20:21:44 and I've only written some of the intersting stuff about it so far, I'll have to document the rest 20:22:00 b_jonas: I looked at it when reviewing Esolang edits 20:22:24 also, it seems that's partly by accident, because I misread _one_ character in the spec, and didn't read the interpreter carefully enough to notice that it doesn't match 20:22:31 the interpreter matches the intended spec 20:22:50 but I went by my copy of the spec, which had an error compared to David's spec 20:22:50 -!- hppavilion[1] has quit (Ping timeout: 265 seconds). 20:23:06 so now we have twice as many languages 20:23:27 and of course, that one character matters a lot, because esolang 20:28:52 this is an interesting read http://www.opensource.apple.com/source/lsof/lsof-8/lsof/00PORTING 20:31:02 haha, lsof reads /dev/kmem on most platforms? 20:32:31 ais523: on BSD, probably 20:32:41 on linux, I think it reads /proc 20:32:51 by "most platforms" I mean "all Unices but Linux" 20:32:58 ais523: yes, but so does ps 20:33:03 I think 20:33:12 maybe it differs on some modern ones 20:33:17 as in, modern bsds 20:33:32 reading /dev/kmem is the traditional way 20:34:15 -!- llue has joined. 20:34:15 -!- llue has quit (Changing host). 20:34:15 -!- llue has joined. 20:34:35 -!- lleu has quit (Read error: Connection reset by peer). 20:38:53 -!- hppavilion[1] has joined. 20:54:40 Should I make ¹²³ be postfix operators that power (for niceness), or should they be permitted to be at the end of names so you can have, for example, w¹? 20:57:25 both! 20:58:06 ais523: That's not possible, even for a language like perl. 20:58:08 heheheh 20:58:12 sure it is 20:58:29 for example, you could allow the subscripts to be part of the identifier only if the identifier had been declared 20:58:34 and otherwise have them as operators 20:58:36 I mean, it would be an esolang, but still 20:59:03 b_jonas: No, not even perl could do it; if we did both (and didn't allow other syntactic fixes) x³ as in x**3 would be ambiguous relative to x³ the name 20:59:09 just like in Perl, if you declare a function then foo (with no punctuation around it) is a function call, otherwise it's a string literal 20:59:39 yeah 20:59:39 apparently the actual official reason behind this feature is that it makes it easier to write Perl/poetry polyglots 20:59:49 (where "poetry" is the literature/artistic concept, not an esolang) 20:59:49 what 21:00:00 ais523: also builtins, but yes 21:00:12 -!- bb010g has quit (Quit: Connection closed for inactivity). 21:00:13 foo isn't a builtin, I picked a concrete example for a reason :-) 21:00:49 right 21:01:45 although some things that are builtins are surprising 21:01:50 like Perl 6's ... operator 21:01:59 which is either an eager or lazy exception, I forget which 21:02:04 (intended use: sub foo { ... } ) 21:02:09 (for a function you haven't written yet) 21:05:28 yes, that's a recent addition 21:06:05 ais523: Wait, really? Wow. 21:09:28 \oren\: So is there a nice-looking way to represent augmented assignment with <- assignment? 21:10:38 hppavilion[1]: do you mean like var +← val; 21:10:48 to increase var by val 21:11:08 b_jonas: yes, but that looks a bit bad 21:11:15 does it? 21:11:20 Is there a better looking version 21:11:22 It does to me 21:11:50 well, I think K uses : for assignment, and var +: val for compound assignment iirc 21:13:41 I don't know if there are apls that use +← 21:14:36 b_jonas: : might actually work... Especially because it's used in Dicts. 21:15:43 hppavilion[1]: or, if you have no prefix operators, only postfix and infix, then ←+ could work too 21:16:20 hppavilion[1]: also maybe .+← or ←.+ 21:16:37 where . stands for a method call such that .+ would do addition 21:16:55 b_jonas: I do have prefix, unfortunately. I think I might use :. 21:17:07 -!- Lord_of_Life has quit (Excess Flood). 21:18:00 -!- Lord_of_Life has joined. 21:18:37 hppavilion[1]: or even ←;+ if ; is your method cascade marker? 21:18:54 as long as that doesn't clash with other syntax of course 21:23:12 have you seen the way Ursala does operator fixity? 21:23:24 ais523: no 21:23:27 the whitespace around an operator determines whether it's infix, postfix, prefix, or unary 21:23:29 err, nullary 21:23:34 (rather than unary) 21:23:47 ais523: yeah... ruby sometimes does that, and even perl does sometimes, in ambiguous situations 21:23:50 and the four versions can have entirely unrelated meanings (although more commonly are various currying) 21:23:51 I hate that 21:23:58 also, operator precedence isn't transitive 21:24:26 ruby has especially complicated rules where there's like three sets of nested exceptions so that it dwims on a negative number powered to something 21:24:31 (it's been known for ages that you can parse grammars unambiguously even if operator precedence isn't transitive; however, mostly this was viewed as a quirk of the parsing algorithms rather than an actually useful feature) 21:25:33 I think the mixfix paper explained how to do nontransitive precedence with it … 21:26:14 I prefer a solution where the arity of the operator is unambiguous anyway, because the syntax is like that 21:26:58 b_jonas: have you seen Ursala at all 21:26:59 oh, I wanted to ask a question from you about parsers too, but it's too late so some other time 21:27:03 if not, you should at least look at some examples 21:27:05 no, I haven't seen ursala 21:27:13 I haven't looked at it at all 21:27:18 b_jonas: Unambiguous at use site or only when including definition site? 21:27:22 remind me later to look at it then 21:27:41 unfortuately the website seems to be down 21:27:44 Melvar: depends 21:27:57 but it basically reads as an esolang that's trying to market it as a non-esolang, and has a library collection competitive with Funge-98 but in different fields 21:28:17 ais523: heh 21:28:41 this seems to be relevant: http://www.bcs.org/category/10379 21:30:01 also the site was http://www.basis.uklinux.net/ursala and is in the wayback machine at http://web.archive.org/web/20080329070617/http://www.basis.uklinux.net/ursala/ so you could look at it that way 21:30:44 "Lessons learned from an unusual language" is the title of the seminar about it 21:31:34 apparently it's inspired by "Squiggol" which I've never heard of 21:33:12 actually this is a really good presentation for learning about what the language is like 21:34:27 anyway it's fun to compare Ursala to Underlambda because they have several similar design goals and end up similar for that reason 21:34:50 (although they're very different in some other respects, because of Underlambda's big defining property that it should be easy to write in and also easy to compile into very low-powered languages) 21:44:53 -!- spiette has quit (Quit: :qa!). 21:58:51 Can functional powers be done with non-natural exponents? 21:59:37 For example, if f(x)=x+1, that means f**2(x)=f(f(x))=(x+1)+1=x+2 22:00:27 But what does f**0.5 mean? And while we're at it, f**-1, f**i and f**(1+i) 22:00:47 (And, I suppose, f**0, though I suspect that that f**0(x)=1) 22:01:35 f**0(x)=x 22:01:38 f^0(x)=x 22:01:44 f**-1(x) is the inverse of f, which might or might not exist 22:01:49 depending on what f does 22:01:54 (and might be non-unique in some cases) 22:02:45 What does it mean to say the inverse isn't unique? 22:02:56 That it's just a left inverse or right inverse? 22:03:23 shachaf: no, those only work on binary operators 22:03:39 a unary function (i.e. one argument) doesn't have a "left inverse" and "right inverse" 22:03:44 ? 22:03:47 I mean https://en.wikipedia.org/wiki/Inverse_function#Left_and_right_inverses 22:04:02 Would you prefer section/retraction? 22:04:03 wait, it does have a preinverse and postinverse though 22:04:17 but what I'm thinking of is, say, f(x) = floor(x/2) (for integral x) 22:04:36 that is inverted by f**-1(x) = x*2, but it's also inverted by f**-1(x) = (x*2)+1 22:05:08 OK, so you mean right inverse. 22:05:15 Where f is surjective but not injective. 22:05:43 I get confused because there are so many different ways to formalize what a function is 22:05:56 "every surjective function has a right inverse" is equivalent to the axiom of choice, which is kind of obvious when you see it but still neat. 22:05:59 if you're composing them then they obviously have left and right inverses 22:06:09 Maybe you'd prefer "split epimorphism"? 22:06:12 sorry, I'm tired 22:06:16 -!- hppavilion[1] has quit (Ping timeout: 265 seconds). 22:06:23 also trying to explain things in terms of category theory will just make things worse 22:06:46 I actually agree that "left inverse" and "right inverse" is confusing terminology, it's just what I've heard. 22:06:55 -!- hppavilion[1] has joined. 22:07:26 We're talking about "right inverse" with respect to the binary operation of function composition, I think. 22:08:39 yes 22:08:45 these are clearly composition-based definitions 22:09:01 if you think about functions in terms of application rather than composition, there's no left and right, just inside and outside 22:09:14 (I used the composition-based version of all this in my thesis, but I wasn't happy about it) 22:09:19 Ah, f**0 is hte identity 22:11:41 hppavilion[1]: you can see this very clearly in Underload 22:11:46 the standard definition of 0 is !() 22:12:05 which literally means "discard the argument, and replace it with the identity" 22:13:39 I don't think generalizing functional powers to non-integers make much sense, but if you do figure something out I'm curious to hear about it 22:13:42 hmm 22:14:40 FireFly: 1/(1-x) is the cube root of the identity :-) 22:16:33 Well I'd say that to generalize it to integers is simple: f**x where x<0 is equivalent to iterating f**-1 |x| times. 22:16:45 sure 22:16:46 For integer x? 22:17:14 shachaf: For any real number, really. But only the integers for now, because we haven't defined it for reals yet. 22:17:51 Now, function square root is a thing: g**1/2=f such that f(f(x))=g(x) 22:17:53 Raising a function to 0 or 1 is a somewhat common idiom for applying a function conditionally in J (and maybe APL, dunno) 22:18:13 (0 and 1 also double as boolean values) 22:18:41 So we can clearly generalize that to any arbitrary real number of the form 1/n where n is an item of R 22:19:09 g**1/n=f such that f**n(x) = g(x) 22:20:53 Now, since any number x to the power of a rational of the form n/d (x**(n/d)) is equivalent to d√(x**n) 22:22:05 So in analogue to that, for a function g to the power of a real number n/d which is equivalent to f, f is a function such that f**n(f**n...(x))...)=g(x) 22:22:53 And, of course, if n/d is negative, it's quite simple: the above expression where n is negated. 22:23:57 -!- AnotherTest has quit (Quit: ZNC - http://znc.in). 22:26:49 -!- Patashu has joined. 22:28:26 so for S**(-2/3)=f, f is equal to, I believe, S**-2(S**-2(S**-2(x))), where S**-2=(S**-1)**2, which means S**-1(S**-1(S**-1(S**-1(S**-1(S**-1(x))))))=P(P(P(P(P(P(x)))))) where P is the predecessor function (I assume S**-1=P), so S**(-2/3)(x)=x-6. Boom. 22:28:49 Next, we have to define f**i(x) if we want to generalize to the complexes. 22:30:28 Skipping that for now, since x**n*x**m=x**(n+m), and defining composition as function multiplication because that seems to make sense, we can deduce that f**(a+bi)(x) = f**a(f**bi(x)) 22:31:05 Either that or function multiplication can just be defined such that f*g(x)=f(x)*g(x), but that's not as fun 22:31:22 FireFly: So really, all we need do is define f**i(x) and we're home free. 22:33:38 FireFly: Have any ideas? 22:34:00 Uh, no clue what imaginary powers would be 22:34:13 the rationals is enough for m 22:34:15 me* 22:34:27 FireFly: What's x**i equal to when x is a real? 22:34:29 f^i(f^i(x)) = f^-1(x), presumably 22:34:37 FireFly: BLASPHEMY! WE CAN NEVER BE SATISFIED! 22:35:46 shachaf: But if we assume that composition is multiplication of functions, that poses a problem. x**n*x**m=x**(n+m), so that means that f**i(f**i(x))=f**2i(x) 22:36:23 Oops, of course. 22:36:53 FireFly: Also, I techncially covered the reals. You just have to round off the naturals, which is kind of how exponentation works anyway AFAICT 22:37:15 I suppose we should define S(f) 22:37:30 “A systematic procedure to produce arbitrary functional n-roots (including, beyond n= ½, continuous, negative, and infinitesimal n) relies on the solutions of Schröder's equation.[3][4] [5]” 22:37:41 You might want to read those (from the article on functional square root) 22:37:58 Hm, the first one is from 1870 22:38:02 FireFly: My system is either better or equivalent. 22:43:12 Wait, what if function multiplication is giving a function its arguments? At least, for the type func*tuple 22:53:12 ais523: I think the cube (or indeed, square or generally nth) root of the identity is the identity, as I(I...I(x)...)=I(x). 22:53:33 hppavilion[1]: try calculating the third power of 1/(1-x) :-) 22:53:48 Of course. 22:53:53 I suspected that. 22:54:14 (at least I think that's what it is) 22:54:19 one of my favourite random mathematical facts 22:54:20 Wait, so 1/(1-x) is a convenient way to obtain EXACTLY the cube root of a number? Wait, that doesn't seem right... 22:55:16 I mean, any two rationals fed to division is a rational, and - is closed over the rationals, but there are rationals such that root(x, 3)(/-R 22:55:58 So the cube root of I(x) can't be 1/(1-x), at least not exactly. Thus, it'd be more accurate to say that the cube root of identity is just I. 22:56:02 (Math!) 22:57:29 ais523, idgi 22:57:33 ((1-x)^-1)^3 = (1-x)^(-3) 22:58:35 hppavilion[1]: no, not the third power of the result 22:58:36 the third power of the function 22:58:53 Oh, that was meant to be a function, not an expression. 22:59:10 Ah 22:59:22 > let f x = 1/(1-x) in f (f (f x)) 22:59:24 1 / (1 - 1 / (1 - 1 / (1 - x))) 22:59:30 here's an example, start with 5; after running the function once we get 1/-4 which is -¼; after running it twice we get 1/(5/4) which is 4/5; and after running it three times we get 1/(1/5) which is 5 23:02:17 oh, it collapses to x 23:02:20 ais523: So the algebraic data type L(a) = 1 + a*L(a) 23:02:25 So L(a) = 1/(1-a) 23:02:33 So [[[a]]] = a? 23:02:46 That doesn't seem right. 23:03:31 I'm not sure I understand 23:03:57 People talk about this thing where you represent the algebraic data type of lists as L(x) = 1/(1-x) 23:04:12 And you do a bunch of algebraic mafipulation and somehow it works out in the end. 23:04:22 E.g. when you take the derivative or that sort of thing. 23:04:24 you expand it to a power series 23:04:39 Yes, you can expand it to a power series, 1 + x + x^2 + ... 23:04:46 Which is the obvious representation of lists. 23:05:15 But ais523 is saying that L^3 = I, so I'm wondering if that can be made to work here somehow. 23:06:03 Ok, I have an issue. I have two functions for the short article I'm writing on this, S and D. S(x)=x+1 and D(x)=2x. I also have the auxilliary functions sS(x)=x+0.5 and sD which are to be used to demonstrate square roots of functions. What I'm trying to find is what sD(x) is equal to; currently it's sqrt(2*x), but that doesn't seem right because sqrt(xy)=sqrt(x)*sqrt(y) and thus it seems wrong. I think. Actually, it's 23:06:03 beginning to seem more right. Not sure 23:06:34 sqrt(2)*x? 23:06:55 shachaf: Tried that, but sqrt(2)*x seems to equal 2(x**2) 23:07:21 ? 23:07:36 I mean (sqrt(2)*x)**2 23:08:25 > let f x = sqrt 2 * x in f (f x) 23:08:27 sqrt 2 * (sqrt 2 * x) 23:08:42 -!- shikhin has changed nick to hin. 23:09:01 (sqrt(x)*sqrt(y))**2=sqrt(x)*sqrt(x)+sqrt(x)*sqrt(y)+sqrt(y)*sqrt(x)+sqrt(y)*sqrt(y)=x+sqrt(x)*sqrt(y)+sqrt(x)*sqrt(y)+y=xy+sqrt(xy)+sqrt(xy)=xy+2(sqrt(xy)) 23:09:05 -!- hin has changed nick to shikhin. 23:09:34 I have no idea what you're getting at now. 23:10:00 I'm saying that sD(x) = sqrt(2) * x, so that sD(sD(x)) = sqrt(2) * sqrt(2) * x = 2*x 23:10:46 Hard to read, yes, but the gist is that sqrt(xy)**2 is equal to (sqrt(x)*sqrt(y))**2 is equal to xy+2(sqrt(xy)) 23:10:50 I think 23:11:33 Oh, well, it's not. 23:11:41 Oh right 23:11:49 I was doing the wrong math 23:12:15 I was doing (sqrt(x)+sqrt(y)**2 instead of (sqrt(x)*sqrt(y)**2 23:12:17 Anyway you can make some sort of relationship between S^n and D^n using log2, probably. 23:13:21 -!- zzo38 has joined. 23:13:37 So I guess sqrt(2)*x it is. Really hope that math is right xD 23:13:49 It isn't difficult to verify. 23:13:55 A lot less work than what you were doing there. 23:14:26 Why does "geometric" mean "with multiplication"? 23:15:16 shachaf: Did I say geometric at some point? 23:15:26 No, but I just did. 23:15:54 shachaf, because scaling is very natural in geometry i guess 23:18:06 -!- ais523 has quit (Ping timeout: 240 seconds). 23:18:32 Aw, no answer from ais523. Maybe I should ask in #haskell or something. 23:18:39 Wait, I think I've found a problem with composition being function multiplication. Consider f(x)=x+1 and g(x)=2x. If composition is function multiplication, (f∘g)(x)=2x+1, so (f∘g)(3)=7, but (g∘f)(x)=2(x+1), so (g∘f)(3)=8. Therefor ∘ is noncommutative 23:18:47 Wait, matrix multiplication isn't commutative either 23:18:49 Problem solved. 23:19:00 Matrix multiplication is function composition. 23:19:03 (And neither is quaternion) 23:19:08 shachaf: How so? 23:19:21 A matrix represents a linear function. 23:19:29 Is a matrix secretly a function? By that logic, couldn't any value be considered a function? 23:19:29 Matrix multiplication represents composition of linear functions. 23:19:33 Ah 23:19:40 It's not so secret in the case of the matrix. 23:20:21 quaternion multiplication is also function composition 23:20:24 It's not a trick like the what's-it-called representation. 23:20:43 NEXT ARGUMENT: 23:20:51 How can you tell CUPS to display what it will do to print the given input (what filters and so on are used, etc) but not send to printer? Also how can you tell CUPS to print to file? 23:20:52 though i mean every group can be realised as function composition 23:20:55 I mean NEXT GENERALIZATION: 23:21:01 ?messages-loud 23:21:02 hppavilion[1] said 4d 2h 4m 58s ago: Found an article on how type systems are logics: https://codewords.recurse.com/issues/one/type-systems-and-logic 23:21:03 g**-1(x, y) 23:21:08 Cayley, that's it. Presumably what Phantom_Hoover is talking about. 23:21:22 cayley's theorem, yes 23:21:38 Except you can do it for monoids, not just groups. 23:21:47 No need for inverses. 23:23:32 nor for units. nor for associativity... 23:23:54 can't do rings though! 23:23:55 Well, monoids are the natural place to do it. 23:24:40 So how does g**-1 work when g takes multiple arguments? I suppose it could be that if g takes multipile arguments and returns an argument of type t, g**-1 could accept a single argument (of type t) and return a tuple of the arguments g would take to yield that 23:25:07 Well, a set of the tuples 23:25:20 Functions only take one argument. 23:25:53 Essentially, if g(1, 2) = 3 and g(4, 5)=3, then g**-1(3) = {(1, 2), (4, 5)} 23:25:58 shachaf: Oh right. Curring. 23:26:05 You don't have to cur. 23:26:38 You can just have a function from a product. 23:27:02 shachaf: Godel numbering or the like? 23:27:09 No, just a pair. 23:27:29 shachaf: You mean a function that just accepts an n-tuple? 23:27:33 Yes. 23:27:35 Ah 23:27:51 Meh, do the Foglios wa 23:27:59 You /could/ do that, OR you could do it the fun way and just interpret them as having multiple arugments 23:28:26 ... want to kill us with the suspense of an impending wasp attack in Paris? 23:30:24 -!- shikhin has changed nick to _exit. 23:30:33 -!- _exit has changed nick to shikhin. 23:33:13 -!- shikhin has changed nick to sortix. 23:33:18 -!- sortix has quit (Disconnected by services). 23:33:31 -!- shikhin has joined. 23:33:34 -!- shikhin has quit (Changing host). 23:33:34 -!- shikhin has joined. 23:42:49 Also how to override the MIME type of the input with CUPS? 23:43:49 Should I use Roman Numerals or Arabic Numerals as the page numbering for a LaTeX document I'm working on? 23:44:25 I think I'll go with arabic 23:45:06 I'm practicing my LaTeX (and making myself seem smarter) by making a little mathematics PDF on Function Arithmetic. 23:45:31 I think I'll call functions "Functia" for the entire article because why the hell not? 23:47:09 Hmm, I should catch up with GG 23:47:32 It was fun to read until I got up to speed with the comic.. then I kind-of forgot about it 23:51:17 hppavilion[1]: the Esoteric Language Council approves of this usage of "functia". 23:51:38 tswett: Excellent. 23:51:44 Wait, we have a council? 23:54:52 The Esoteric Language Council's position on this question is that yes, we do. 23:55:39 What's the name again for functions that have conditions in them? That is, functions with "if x=2" and the like. 23:56:16 I was going to use it in my Arithmetic of the Functia, but then I realized hyperoperations for demonstration of basic functions is a bad idea 23:56:22 But I'm still curious 23:56:56 fungot: where are you? 23:57:06 My own computer does not have the "--list-filters" option of "cupsfilter" program 23:57:20 hppavilion[1]: piecewise. 23:57:25 THERE we go! 23:58:18 I need a good, simple, 2-argument function for my Arithmetic of Functia. A(x, y)=x+y is already used. I don't just want to do M(x, y)=xy. Anyone have any good ideas? Perhaps a famous but simple function? 23:58:58 One that I can evaluate for two naturals (including 0) <= 4 in my head while writing the document? xD 23:59:22 It need not be piecewise, but that'd add some nice variety 23:59:51 (And noone suggest Ackermann. Just no. I don't think it's even /possible/ to do that in one's head.)