[00:04:14] * earl [earl!~earl@pdpc/supporter/active/earl] has quit (Ping timeout: 276 seconds). [00:04:29] * earl [earl!~earl@pdpc/supporter/active/earl] has joined the channel. [02:23:46] * klltkr [klltkr!~klltkr@unaffiliated/klltkr] has quit (Quit: My MacBook has gone to sleep. ZZZzzz…). [02:24:49] * klltkr [klltkr!~klltkr@unaffiliated/klltkr] has joined the channel. [02:25:10] * klltkr [klltkr!~klltkr@unaffiliated/klltkr] has quit (Client Quit). [04:29:39] * proteusguy [proteusguy!~proteus-g@180.183.115.189] has joined the channel. [05:16:50] * Sgeo_ [Sgeo_!~Sgeo@ool-18b98627.dyn.optonline.net] has joined the channel. [05:18:56] * Sgeo [Sgeo!~Sgeo@ool-18b98627.dyn.optonline.net] has quit (Ping timeout: 246 seconds). [06:05:37] * FreeFull [FreeFull!~freefull@defocus/sausage-lover] has quit. [08:10:28] * proteusguy [proteusguy!~proteus-g@180.183.115.189] has quit (Read error: Connection reset by peer). [08:28:17] * proteusguy [proteusguy!~proteus-g@180.183.115.189] has joined the channel. [08:29:16] * proteusguy [proteusguy!~proteus-g@180.183.115.189] has quit (Excess Flood). [09:02:17] * Sgeo_ [Sgeo_!~Sgeo@ool-18b98627.dyn.optonline.net] has quit (Ping timeout: 240 seconds). [09:28:35] * Sgeo [Sgeo!~Sgeo@ool-18b98627.dyn.optonline.net] has joined the channel. [12:10:06] * abeaumont [abeaumont!~abeaumont@163.172.180.248] has quit (*.net *.split). [12:10:07] * groovy2shoes [groovy2shoes!~groovy2sh@unaffiliated/groovebot] has quit (*.net *.split). [12:10:07] * shmibs [shmibs!~shmibs@shmibbles.me] has quit (*.net *.split). [12:11:06] * groovy2shoes [groovy2shoes!~groovy2sh@unaffiliated/groovebot] has joined the channel. [12:25:08] * shmibs [shmibs!~shmibs@shmibbles.me] has joined the channel. [12:53:58] * proteusguy [proteusguy!~proteus-g@2405:9800:bc10:1ca:a5c1:6eaf:5749:9907] has joined the channel. [13:18:42] * pointed-set [pointed-set!~kir@95.104.235.216] has joined the channel. [15:17:30] * abeaumont [abeaumont!~abeaumont@163.172.180.248] has joined the channel. [15:26:58] tgunr: i dont know how to type ?? [15:27:34] that's supposed to be a guillemet [16:05:30] option \ for left, shift option \ for right guillemet. but that's only on mac [16:19:42] * klltkr [klltkr!~klltkr@unaffiliated/klltkr] has joined the channel. [16:19:54] * klltkr [klltkr!~klltkr@unaffiliated/klltkr] has quit (Client Quit). [16:45:01] * FreeFull [FreeFull!~freefull@defocus/sausage-lover] has joined the channel. [16:53:59] * klltkr [klltkr!~klltkr@unaffiliated/klltkr] has joined the channel. [16:57:26] * pointed-set [pointed-set!~kir@95.104.235.216] has left the channel. [16:57:56] * pointed-set [pointed-set!~kir@95.104.235.216] has joined the channel. [16:58:10] * pointed-set [pointed-set!~kir@95.104.235.216] has left the channel. [17:01:24] * Sgeo [Sgeo!~Sgeo@ool-18b98627.dyn.optonline.net] has quit (Ping timeout: 246 seconds). [17:01:25] * Sgeo_ [Sgeo_!~Sgeo@ool-18b98627.dyn.optonline.net] has joined the channel. [17:05:29] * jtimon [jtimon!~quassel@199.31.134.37.dynamic.jazztel.es] has joined the channel. [17:07:48] * Sgeo_ [Sgeo_!~Sgeo@ool-18b98627.dyn.optonline.net] has quit (Ping timeout: 240 seconds). [17:29:05] * klltkr [klltkr!~klltkr@unaffiliated/klltkr] has quit (Quit: My MacBook has gone to sleep. ZZZzzz…). [17:41:52] option-\ « option-shift-\ » I thiught PC could do same [18:31:09] * evincar [evincar!~jon@173-228-12-115.dsl.dynamic.fusionbroadband.com] has joined the channel. [19:46:54] tgunr: i was thinking about something more like TUPLE: ab a b ; 1 set-slot: a 2 set-slot: b [19:58:02] * klltkr [klltkr!~klltkr@unaffiliated/klltkr] has joined the channel. [20:06:57] * klltkr [klltkr!~klltkr@unaffiliated/klltkr] has quit (Quit: My MacBook has gone to sleep. ZZZzzz…). [20:17:42] * klltkr [klltkr!~klltkr@unaffiliated/klltkr] has joined the channel. [20:34:57] * klltkr [klltkr!~klltkr@unaffiliated/klltkr] has quit (Quit: Textual IRC Client: www.textualapp.com). [21:00:42] otoburb: > if everybody wanted to create a new stack language for their cryptocurrencies, why didn't they just use a subset of Factor [21:00:58] otoburb: TC and dynamic types aren't suitable for a cryptocurrency scripting language IMO [21:01:22] It could be inspired by Factor but the end result wouldn't be very similar [21:01:40] I guess it should go without saying that I think Ethereum is a grave mistake :P [21:01:55] I suppose, it might be too much hassle to use the option char on a non mac, but my main complaint the the non-consistent direction arrows. If you imagine the stack to be to hte right ( stack effect -- ) then >> should push and << should pull, perhaps slot? should have been read and slot>> the missing getter. But that would involve changing a LOT of legacy code which is why I suggested something altogether new. To stay with [21:01:56] straight ASCII slot->> or something could be ( obj -- value object) as getter. Regardless, I think the direction should be consistent. And there should be a way to redefine or indicate same operation is driven by user code. [21:02:52] s/slot?/slot>/ [21:03:19] The listener could easily translate ASCII digraphs into Unicode symbols, no? [21:03:36] hmm, thats a thought [21:04:21] Auto-replace >> with », -> with →, etc.; hitting backspace immediately after a replacement undoes the replacement for cases when you don't want that [21:05:18] It's something I plan to do in Kitten eventually, but I've got bigger fish to fry at the moment [21:05:49] The left and right arrows would be ideal to show push and pop [21:06:53] yes, it is a small fish but to a newbie the accessors are confusing [21:07:49] The problem with using Unicode for identifiers is that there are too many characters that either look alike, or don't render properly, and this depends on the font used, so it might not be apparent to the author. [21:08:10] Personally, I think it should be addressed before a release of 1.0 [21:09:20] It just seems after 30+ years of using 7-bit ASCII we could be doing better [21:10:24] As well as conversions (string>number = string→number) and shorter versions of convenience functions (iota = ι, sum = Σ), sky's the limit [21:10:45] One of the positive things about the Latin alphabet and ASCII for programming is that most characters are visually distinct, and there aren't many of them. [21:10:48] Toss em in a bag-o-crap unicode vocab as a proof of concept [21:11:04] perhaps all operations should be defined as words with optional short-cuts [21:11:37] And then monospace/programming fonts enhance this further, by making 1/l, 0/O, etc. easier to distinguish. [21:12:07] personally I prefer camel case words to dash words even after decades of using dashes in Forth :) [21:12:52] Surprisingly, camel case is also better for screenreaders (by default) [21:13:12] not underscore so underscore much underscore snake underscore case [21:13:26] There is nothing that prevents thier useage, its just a convention carried over from Forth [21:14:33] I'd rather have multi-word identifiers to be honest [21:14:35] and that was way before camel case came into being [21:14:50] It wouldn't work well in Factor because there's so little syntactic separation of things [21:14:57] But in a C-like language it works well [21:15:11] I would agree to that [21:15:49] I've done that in a couple of toy languages; a good rule seems to be "identifiers can't start with keyword or number tokens" but anything else is pretty much fair game [21:16:21] like 2drop? [21:16:25] E.g. "function update user data (user name : string, user data : User Data)" [21:16:44] The compiler has to know that "function" and "update" are part of separate lexemes [21:17:17] And "player 1" is fine, but "1st player" gets ambiguous [21:18:00] * MDude [MDude!~MDude@c-73-187-225-46.hsd1.pa.comcast.net] has joined the channel. [21:20:32] IMO quoting like in F# ``player one`` and SQL [player one] aren't quite enough to get people to actually use the feature [21:20:44] Requires more typing and occupies valuable ASCII real estate [21:21:04] *SQL Server [21:22:06] Although I like the look of [bracketed identifiers] [21:22:36] It makes the syntax of the language seem visually more like a template you're slotting your code into [21:25:57] Are we talking about kitten? [21:31:03] No, hah, it had "mixfix" identifiers a while back, which allowed multi-word identifiers, but the feature was more trouble than it was worth [21:31:43] I just wanted to be able to implement nice syntax for if/else at the library level, but the benefit wasn't worth the cost [21:32:52] Now there's a single thing for making user-defined functions into "flow control"-like syntax, "do (f) { x }" = "{ x } f" [22:13:06] * flogbot [flogbot!~flogbot@2001:4800:7814:0:2804:b05a:ff04:4ba7] has quit (Ping timeout: 255 seconds). [22:13:16] * flogbot [flogbot!~flogbot@2001:4800:7814:0:2804:b05a:ff04:4ba7] has joined the channel. [22:13:16] :leguin.freenode.net 353 flogbot = #concatenative :flogbot MDude evincar jtimon FreeFull abeaumont proteusguy shmibs groovy2shoes earl dustinm` merry tgunr suppi ecx86 ephe_meral otoburb defanor jeremyheiler carvite jlewis m_hackerfoo doublec zgrep mollerse shachaf diginet hackerfoo amuck jeaye mtp strmpnk erg cstrahan PiDelport lonjil rotty rgrinberg [22:13:16] :leguin.freenode.net 366 flogbot #concatenative :End of /NAMES list. [22:30:01] * Sgeo [Sgeo!~Sgeo@ool-18b98627.dyn.optonline.net] has joined the channel. [22:36:07] * Sgeo_ [Sgeo_!~Sgeo@ool-18b98627.dyn.optonline.net] has joined the channel. [22:37:18] * Sgeo [Sgeo!~Sgeo@ool-18b98627.dyn.optonline.net] has quit (Ping timeout: 240 seconds). [23:14:13] I think I am going to go with camel case accessors, they are word based and no ambiguity to the reader slot>> becomes slotRead ( obj - value) and slot<< becomes slotWrite ( value object -- ) consuming the object, likewise for Get and Set which retain the object on the stack. [23:16:47] much like Objective-C which uses similar defined accessors [23:18:09] computed/virtual properties would follow same convention [23:19:38] * Sgeo__ [Sgeo__!~Sgeo@ool-18b98627.dyn.optonline.net] has joined the channel. [23:23:05] * Sgeo_ [Sgeo_!~Sgeo@ool-18b98627.dyn.optonline.net] has quit (Ping timeout: 248 seconds). [23:24:59] but what to do with redefined slotRead which might want some user code to be executed [23:25:32] can Factor do a head/tail patch? [23:26:47] also Swift has the concept of willSet and didSet for notifications of value changing for a property