ChanServ changed the topic of #crystal-lang to: The Crystal programming language | http://crystal-lang.org | Crystal 0.31.1 | Fund Crystal's development: http://is.gd/X7PRtI | GH: https://github.com/crystal-lang/crystal | Docs: http://crystal-lang.org/docs/ | API: http://crystal-lang.org/api/ | Gitter: https://gitter.im/crystal-lang/crystal
<FromGitter> <Blacksmoke16> ```code paste, see link``` [https://gitter.im/crystal-lang/crystal?at=5d97f3f8b385bf2cc675ece5]
<FromGitter> <Blacksmoke16> thats a new one :thinking:
<FromGitter> <Blacksmoke16> oh nvm, had a `property` floating outside of a class/struct
<FromGitter> <tenebrousedge> *nods*
f1refly has joined #crystal-lang
f1reflyylmao has quit [Ping timeout: 245 seconds]
chemist69 has quit [Ping timeout: 252 seconds]
chemist69 has joined #crystal-lang
DTZUZO has joined #crystal-lang
ht_ has joined #crystal-lang
_whitelogger has joined #crystal-lang
_whitelogger has joined #crystal-lang
ua has joined #crystal-lang
lvmbdv has quit [Quit: i bet i can punch that bear trap]
lvmbdv has joined #crystal-lang
<FromGitter> <ilanpillemer> @ImAHopelessDev_gitlab I am busy reading the book by Bruce Tate, as he is writing it, in order to learn Crystal. (https://grox.io/)
ht_ has quit [Quit: ht_]
lvmbdv has quit [Quit: bruh]
lvmbdv has joined #crystal-lang
lvmbdv has quit [Ping timeout: 240 seconds]
lvmbdv has joined #crystal-lang
DTZUZO has quit [Ping timeout: 240 seconds]
absolutejam has joined #crystal-lang
absolutejam has quit [Ping timeout: 246 seconds]
alex`` has joined #crystal-lang
<FromGitter> <ImAHopelessDev_gitlab> Good morning!!
<FromGitter> <ImAHopelessDev_gitlab> It's Crystal time baby, let's go
<FromGitter> <ImAHopelessDev_gitlab> Time to edit all my files to conform to the new PRs
<FromGitter> <ImAHopelessDev_gitlab> i also want to create a server admin app on windows so i can load up my masterserver.cr and gameserver.cr in separate tabs. can use godot's ui for this, i think it will be cool. once i get it working, i'll release it on github
<FromGitter> <ImAHopelessDev_gitlab> having to deal with 2 consoles is annoying af
_whitelogger has joined #crystal-lang
alex`` has quit [Quit: WeeChat 2.6]
<FromGitter> <ImAHopelessDev_gitlab> almost there (https://i.gyazo.com/3dcc0733e5a32291875fd43712f932b7.mp4), disgonnabegood.gif
alex`` has joined #crystal-lang
go|dfish has quit [Ping timeout: 268 seconds]
alex`` has quit [Quit: WeeChat 2.6]
alex`` has joined #crystal-lang
alex`` has quit [Client Quit]
alex`` has joined #crystal-lang
alex`` has quit [Client Quit]
alex`` has joined #crystal-lang
alex`` has quit [Ping timeout: 268 seconds]
alex`` has joined #crystal-lang
_whitelogger has joined #crystal-lang
DTZUZO has joined #crystal-lang
dwdv has joined #crystal-lang
<FromGitter> <ilanpillemer> is there any way to get API documentation from the terminal via crystal tool?
alex`` has quit [Ping timeout: 240 seconds]
<FromGitter> <ImAHopelessDev_gitlab> not sure, you thinking of like `man`, but it be all crystal documentation based?
alex`` has joined #crystal-lang
<FromGitter> <ilanpillemer> no I mean something like
<FromGitter> <ilanpillemer> crystal tool doc Hash
<FromGitter> <ilanpillemer> which then would print out all available methods on Hash
<FromGitter> <ImAHopelessDev_gitlab> and then?
<FromGitter> <ImAHopelessDev_gitlab> oh
<FromGitter> <ImAHopelessDev_gitlab> iuno but that sounds cool
<FromGitter> <ilanpillemer> for example in Go you can do `go doc strings`
<FromGitter> <ImAHopelessDev_gitlab> i'd use it
<FromGitter> <ilanpillemer> and then if you do `go doc -all strings` you get the source code for strings as well.
<FromGitter> <ImAHopelessDev_gitlab> well, i like this idea
<FromGitter> <ilanpillemer> I keep having to go search for it in the API page
<FromGitter> <ilanpillemer> which is slow
<FromGitter> <ImAHopelessDev_gitlab> yeah, i use the api page all the time that's prob why 😆
<FromGitter> <ilanpillemer> And then switch across to the repo if I want to see how something is implemented
<FromGitter> <ilanpillemer> ok. so it doesnt exist
<FromGitter> <tenebrousedge> I'm not sure
<FromGitter> <tenebrousedge> there's definitely a vscode plugin that shows methods and their implementation
<FromGitter> <tenebrousedge> probably for vim too
DTZUZU has quit [Quit: WeeChat 2.2]
<FromGitter> <ilanpillemer> is there a way to get the api documentation in text? Or is there html the only way?
<FromGitter> <tenebrousedge> the `docs` tool also supports json output
<FromGitter> <ilanpillemer> have ever tried to read json?
<FromGitter> <tenebrousedge> I use tools that do
<FromGitter> <ilanpillemer> I would like to just be able to do `| less` and read it
<FromGitter> <ilanpillemer> hmm
<FromGitter> <Daniel-Worrall> You can build docs locally, then it's not slow
<FromGitter> <Blacksmoke16> whats slow about finding the type on the online docs and ctrl+f what you want?
<FromGitter> <tenebrousedge> `ls` and `show-doc` in `pry` are vastly easier
<FromGitter> <tenebrousedge> being able to do `crystal show-doc "File#read"` would be nice
<FromGitter> <ilanpillemer> @Daniel-Worrall its still slow if I am dealing with html or json
<FromGitter> <ilanpillemer> @tenebrousedge exactly…
<FromGitter> <ImAHopelessDev_gitlab> i'm so used to just going to the api and searching
<FromGitter> <ImAHopelessDev_gitlab> i never really thought of a `man` like doc viewer for crystal
<FromGitter> <tenebrousedge> but generating html and then using `grep` or `ag` is probably the next best option
<FromGitter> <tenebrousedge> or using atom, vscode, or vim
DTZUZU has joined #crystal-lang
<FromGitter> <Daniel-Worrall> I've not thought the docs were ever slow, so I figured your limiter was internet fetching which is nil if it's local
<FromGitter> <ImAHopelessDev_gitlab> is @bew still around?
go|dfish has joined #crystal-lang
alex`` has quit [Ping timeout: 240 seconds]
alex`` has joined #crystal-lang
rohitpaulk has joined #crystal-lang
dannyAAM has quit [Quit: znc.saru.moe : ZNC 1.6.2 - http://znc.in]
dannyAAM has joined #crystal-lang
<FromGitter> <Blacksmoke16> heres a question
<FromGitter> <Blacksmoke16> how would you go about determining if a value exists at a given index in an array
<FromGitter> <Blacksmoke16> `arr[idx]?` doesn't work for `nil` since there isn't a way to tell that `nil` is a value or because its out of bounds
<FromGitter> <Blacksmoke16> i guess maybe fetch, with a default?
<FromGitter> <Blacksmoke16> ```if arr.fetch(0, :none) != :none ⏎ pp arr[0] ⏎ else ⏎ pp "else" ⏎ end``` [https://gitter.im/crystal-lang/crystal?at=5d98e31aeac5612d22be1a1f]
<FromGitter> <Blacksmoke16> any better ideas?
<FromGitter> <ImAHopelessDev_gitlab> https://play.crystal-lang.org/#/r/7pec
<FromGitter> <ImAHopelessDev_gitlab> > `arr[idx]?` doesn't work for `nil` since there isn't a way to tell that `nil` is a value or because its out of bounds
<FromGitter> <ImAHopelessDev_gitlab> what's this mean
<FromGitter> <Blacksmoke16> yea that doesnt work for `false` or `nil`
<FromGitter> <Blacksmoke16> https://play.crystal-lang.org/#/r/7pee
<FromGitter> <ImAHopelessDev_gitlab> oh the value
<FromGitter> <Blacksmoke16> yes
absolutejam has joined #crystal-lang
<FromGitter> <ImAHopelessDev_gitlab> https://play.crystal-lang.org/#/r/7pes
<FromGitter> <ImAHopelessDev_gitlab> somethign like that?
<FromGitter> <ImAHopelessDev_gitlab> the value of the value of the array
<FromGitter> <ImAHopelessDev_gitlab> we must go deeper 😆
<FromGitter> <Blacksmoke16> no the only case it should fall into the `else` block is when there isnt *anything* at the given index
<FromGitter> <ImAHopelessDev_gitlab> what's anything?
<FromGitter> <ImAHopelessDev_gitlab> how to check for *anything*
<FromGitter> <ImAHopelessDev_gitlab> cna't you just chekc for what you are expecting?
<FromGitter> <ImAHopelessDev_gitlab> then if it's not that, fall to else
<FromGitter> <ImAHopelessDev_gitlab> but you are expecting it could be anything? so it's hard to do. if i got that right
<FromGitter> <SewerynKaminski> if index > arr.size ?
<FromGitter> <ImAHopelessDev_gitlab> oh i have an idea
<FromGitter> <Blacksmoke16> i should also mention im dealing with tuples/named tuples
DTZUZU has quit [Ping timeout: 268 seconds]
DTZUZO has quit [Ping timeout: 245 seconds]
<FromGitter> <ImAHopelessDev_gitlab> i have a feeling, you must whitelist this
<FromGitter> <ImAHopelessDev_gitlab> handle all those types. then if the value doesn't match, the else will be executed
DTZUZO has joined #crystal-lang
<FromGitter> <SewerynKaminski> the size property is working with tupeles too
<FromGitter> <ImAHopelessDev_gitlab> otherwise, to define and check there "isn't anything", you'd have a gigantic and I mean gigantic if statement
<FromGitter> <ImAHopelessDev_gitlab> inb4 asterite'd though
<FromGitter> <Blacksmoke16> let me make an example
<FromGitter> <Blacksmoke16> https://play.crystal-lang.org/#/r/7pfs this seems to work
<FromGitter> <ImAHopelessDev_gitlab> ^_^
<FromGitter> <Blacksmoke16> well no it doesnt handle nil
<FromGitter> <Blacksmoke16> hmm
<FromGitter> <Blacksmoke16> well actually im ok if it doesnt handle nil, but false should work
DTZUZU has joined #crystal-lang
<FromGitter> <Blacksmoke16> ```code paste, see link``` [https://gitter.im/crystal-lang/crystal?at=5d98ebf0464b432fc1c66652]
<FromGitter> <Blacksmoke16> ended up doing that
DTZUZU has quit [Client Quit]
<FromGitter> <Blacksmoke16> if you pass `nil` as a value and it has a default value the default is used, i think thats fine
DTZUZU has joined #crystal-lang
absolutejam has quit [Ping timeout: 265 seconds]
<FromGitter> <Daniel-Worrall> Why can't you just check index against size
<FromGitter> <tenebrousedge> `[2, nil, 3]`
<FromGitter> <Blacksmoke16> let me try that
<FromGitter> <tenebrousedge> I would use `[]` and `try/catch`
<FromGitter> <Blacksmoke16> ```code paste, see link``` [https://gitter.im/crystal-lang/crystal?at=5d98ee3d940b4c2fc07ef2de]
<FromGitter> <ImAHopelessDev_gitlab> yah just rescue
<FromGitter> <Blacksmoke16> not for this use case
<FromGitter> <Blacksmoke16> that would kill perf
<FromGitter> <ImAHopelessDev_gitlab> o
<FromGitter> <ImAHopelessDev_gitlab> hmm
<FromGitter> <tenebrousedge> what's the use case?
<FromGitter> <Blacksmoke16> initializing an object from splat args
<FromGitter> <tenebrousedge> have you measured the perf hit?
<FromGitter> <Blacksmoke16> sec
<FromGitter> <tenebrousedge> is there a problem with just using `compact`?
<FromGitter> <Blacksmoke16> the index in the tuple matches up with the order the properties were defined in
<FromGitter> <Blacksmoke16> that would mess that up
<FromGitter> <tenebrousedge> k
absolutejam has joined #crystal-lang
absolutejam has quit [Read error: Connection reset by peer]
rohitpaulk has quit [Ping timeout: 240 seconds]
<FromGitter> <Blacksmoke16> ```code paste, see link``` [https://gitter.im/crystal-lang/crystal?at=5d98eff9e8de6f3ca046206a]
<FromGitter> <Blacksmoke16> im checking if `!args.empty/`
absolutejam has joined #crystal-lang
<FromGitter> <Blacksmoke16> but guess that doesnt restrict anything
<FromGitter> <tenebrousedge> maybe use assignment in the conditional?
<FromGitter> <Blacksmoke16> like `if val = args[0]?`?
<FromGitter> <tenebrousedge> `a = args unless args.empty?`
<FromGitter> <Blacksmoke16> sec
<FromGitter> <Blacksmoke16> nope
<FromGitter> <tenebrousedge> what did you test?
<FromGitter> <Blacksmoke16> ```code paste, see link``` [https://gitter.im/crystal-lang/crystal?at=5d98f0b77aa5602ffc759050]
<FromGitter> <tenebrousedge> huh
<FromGitter> <ilanpillemer> could you use a map with a default?
<FromGitter> <ilanpillemer> there is no reasonable way to do it without a default value that is sentinel (ie not possible to be in the array)
<FromGitter> <ilanpillemer> maybe you could zip it with something
<FromGitter> <Blacksmoke16> simplified some of the logic, just have to think of what the expected behavior is
<dwdv> Hi, everyone! I have an Array({Bool, Bool}) and want to count the true values in each position like so:
<dwdv> arr.reduce({0, 0}) do |(c1, c2), (b1, b2)|
<dwdv> {c1 + (b1 ? 1 : 0), c2 + (b2 ? 1 : 0)}
<dwdv> end
<dwdv> Is there a shorter way, otherwise I'm reverting back to external state variables, that mihgt be more readable.
<FromGitter> <Blacksmoke16> `count_by`?
<dwdv> Let me see.
alex`` has quit [Read error: Connection reset by peer]
<FromGitter> <Blacksmoke16> oh wait idt think thats a thing
<FromGitter> <Blacksmoke16> https://crystal-lang.org/api/master/Enumerable.html#count(&block)-instance-method this one
<FromGitter> <Blacksmoke16> er nvm that wont help if you want the count to be positional sec
<dwdv> But that won't give me {3,1} when I have [{true, false}, {true, false}, {true, true}], right?
<dwdv> Ah, yes.
<FromGitter> <Blacksmoke16> what you have is prob fine
<FromGitter> <Blacksmoke16> i cant think of a better way atm
alex`` has joined #crystal-lang
<dwdv> Maybe I'll switch to an Array({Unint8, Uint8}), hm.
<FromGitter> <Blacksmoke16> dunno if that would actually help much
<dwdv> {c1 + b1, c2 + b2} would be a bit shorter, but less idiomatic, I guess.
<dwdv> Anyway, thanks for your input, Blacksmoke16!
<FromGitter> <Blacksmoke16> could define a `to_i` on `Bool`
<FromGitter> <Blacksmoke16> `to_unsafe` does that but prob not the best idea to use that for this use case
<dwdv> Well, state vars look a bit clearer: https://play.crystal-lang.org/#/r/7pgt
<dwdv> Doing AoC18 atm, trying to learn crystal. Like it so far.
<FromGitter> <tenebrousedge> `each` >_<
<dwdv> Why is tally using hash[item]? here instead of a .new(0) initializer that would simplify most of the body to hash[item] += 1? Are there any performance implications I'm missing? https://github.com/crystal-lang/crystal/blob/3e0eb31a65d2ea62fb393475cfeaa46d46f531b2/src/enumerable.cr#L1414
<FromGitter> <tenebrousedge> I don't think you're missing anything, I think it's just weird
<dwdv> Btw., what's wrong with each?
<FromGitter> <tenebrousedge> there is almost always a better iterator
<FromGitter> <tenebrousedge> if you're doing a complex loop with multiple external variables, or if there's really no possible return value from the loop that could be useful, `each` is fine
<FromGitter> <tenebrousedge> but in most cases there's an iterator (`reduce` if nothing else) that will have a useful return value
<FromGitter> <tenebrousedge> `reduce` can be used to write all other higher-order iterators
<FromGitter> <ilanpillemer> dwdv, when I finish getting through a bunch more of exercise, I am going to do AoC2016 with Crystal. Just did 2018 in Go.
<dwdv> Even Day15? ;)
<FromGitter> <ilanpillemer> yes
<dwdv> Hossa, nice!
<dwdv> Damn, 600+ lines? Took me ~150 in CL if I remember correctly.
<FromGitter> <j8r> @Blacksmoke16 you can use the block variant: https://play.crystal-lang.org/#/r/7ph5
<FromGitter> <ilanpillemer> yeah. A lot of duplication though
<FromGitter> <ilanpillemer> it could be cleaned up
<FromGitter> <ilanpillemer> I suck at game simulation
<FromGitter> <ilanpillemer> Its my weakest thing
<FromGitter> <ImAHopelessDev_gitlab> rofl i read that as exorcism
<dwdv> Maybe you were just unlucky with the input data provided. a few had really weird edge cases.
<FromGitter> <ilanpillemer> I had crazy edge cases, I rewrote the thing 3 times
<dwdv> Some of the reddit top solutions didn't solve my input data for example. Was a weird one indeed. :)
<FromGitter> <tenebrousedge> @ilanpillemer are you just doing exercism offline?
<FromGitter> <ilanpillemer> no
<FromGitter> <ilanpillemer> I just compared your anagram with my anagram
<FromGitter> <tenebrousedge> oh, you're not doing the mentored track?
<FromGitter> <ilanpillemer> no, not doing mentored
<FromGitter> <tenebrousedge> I was wondering why I hadn't seen your submissions
<FromGitter> <ilanpillemer> well, thats why!
<FromGitter> <ilanpillemer> feel free to comment though on them
<FromGitter> <tenebrousedge> which ones have you done so far?
<FromGitter> <ilanpillemer> just starting armstrong numbers now
<FromGitter> <tenebrousedge> okay, I'll take a look at them
<FromGitter> <ilanpillemer> 👍
<dwdv> Oh, never heard of that before. Better than the hackerrank stuff?
<FromGitter> <ilanpillemer> so far all very simple.. more like how to use the language than difficult
<FromGitter> <tenebrousedge> I don't know about better, but you can get personalized feedback if you like
<FromGitter> <tenebrousedge> probably from me because there aren't too many other mentors
<FromGitter> <ilanpillemer> yes, there is a cool mentored aspect
<FromGitter> <ilanpillemer> I just turned it off though. ;)
<FromGitter> <ImAHopelessDev_gitlab> ```code paste, see link``` ⏎ ⏎ LOL [https://gitter.im/crystal-lang/crystal?at=5d990521b385bf2cc67d41e8]
<dwdv> Hope you are paid for all those code reviews you are doing. :)
<FromGitter> <tenebrousedge> no, it's usually a nice break from work though
<FromGitter> <ilanpillemer> feedback is good. I just assumed it meant I would get gated on progressing etc.
<FromGitter> <tenebrousedge> yes
<FromGitter> <ilanpillemer> thats why I turned it off. I do appreciate feedback though.
<FromGitter> <ilanpillemer> btw, this is what my IDE looks like..
<FromGitter> <ImAHopelessDev_gitlab> wow
<FromGitter> <ImAHopelessDev_gitlab> how do you live
<dwdv> Almost as bad as my ugly emacs. :)
<FromGitter> <ilanpillemer> I just changed to Acme from emacs over the last few months
<FromGitter> <ImAHopelessDev_gitlab> i imagine @ilanpillemer you prefer function over form? :)
<FromGitter> <ilanpillemer> yes
<FromGitter> <ImAHopelessDev_gitlab> can't fault u there :)
<FromGitter> <ImAHopelessDev_gitlab> actually, since you released crystal formatter for acme editor i might try it out lol
<FromGitter> <ImAHopelessDev_gitlab> i gave u a star btw, thx
<FromGitter> <ilanpillemer> next week, I want to look at seeing if I can link up a lsp server into it
<FromGitter> <ilanpillemer> if there are any good Crystal LSP servers?
<FromGitter> <ilanpillemer> though if you dont have Go, I would have have to add some travis CI and a download repo so you can get the binary for your OS
<FromGitter> <ilanpillemer> and setting up Acme can send you down a crazy rabbit hole
<FromGitter> <ilanpillemer> https://ilanpillemer.github.io/subjects/acme.html may help..
<FromGitter> <ilanpillemer> but they kind of assume you know what you are doing
<FromGitter> <absolutejam_gitlab> plug for https://kakoune.org
<FromGitter> <ilanpillemer> kakoune looks nice. There are 3 kinds of editors for different kinds of folks. GUI kinds (eclipse, vscode etc), char driven(emacs, vi), integrating (Oberon, acme)
<FromGitter> <ilanpillemer> and they reflect I think the way the users think at quite a low level. I can get acme working for any kind of language even extremely experimental ones very fast.
<FromGitter> <ilanpillemer> but I lose things like syntax colouring.
<FromGitter> <ImAHopelessDev_gitlab> i was watching a video from jonathan blow's youtube channel. the way he navigates around emacs is kinda impressive tbh. i just use my mouse and click and drag, lol
<FromGitter> <ilanpillemer> I used emacs for the last 20 years until I discovered Acme about a year ago
<FromGitter> <ilanpillemer> the part I struggled the most with emacs is window management
<FromGitter> <tenebrousedge> @ilanpillemer commented on finished solutions. The anagram and atbash solutions seem fine. I did them slightly differently, but there's no reason to prefer either method, as far as I know
<FromGitter> <ilanpillemer> thanks!
<FromGitter> <tenebrousedge> if you want a challenge, try the Forth
<FromGitter> <tenebrousedge> I recommend a dual-mode interpreter rather than a two-pass interpreter
<FromGitter> <ilanpillemer> this is the order I am doing them in
<FromGitter> <tenebrousedge> k
<FromGitter> <ilanpillemer> forth is on the list!
<FromGitter> <ImAHopelessDev_gitlab> what is this?
<FromGitter> <ilanpillemer> what is what?
<FromGitter> <ImAHopelessDev_gitlab> that image
<FromGitter> <ilanpillemer> its from the course I mentioned
<FromGitter> <ImAHopelessDev_gitlab> oh
<FromGitter> <ilanpillemer> @tenebrousedge you probably noticed my use of the built in methods improved as I progressed
<FromGitter> <j8r> @ImAHopelessDev_gitlab I see you have done https://github.com/girng/CaseWhenEnumVsCaseWhenString
<FromGitter> <ImAHopelessDev_gitlab> @j8r it's botched, i think it's wrong
<FromGitter> <j8r> if you are interested in benchmarks, feel free to contribute to https://github.com/language-benchmarks/fast-crystal :)
<FromGitter> <ImAHopelessDev_gitlab> nice one @j8r thanks!
<FromGitter> <tenebrousedge> @ilanpillemer seemed to, yes
<FromGitter> <ilanpillemer> thats why I am trying to find a way to read the docs without having to try deal with html.. I like plain text.
<oprypin> ImAHopelessDev_gitlab, i appreciate that you did that benchmark :)
<FromGitter> <ImAHopelessDev_gitlab> thx. i like enums
absolutejam has quit [Ping timeout: 265 seconds]
<FromGitter> <ImAHopelessDev_gitlab> learned new word today, *dividend*
<FromGitter> <ImAHopelessDev_gitlab> (context of math I mean)
<FromGitter> <ImAHopelessDev_gitlab> https://github.com/crystal-lang/crystal/issues/8278
<FromGitter> <ImAHopelessDev_gitlab> i was literally about to post that issue with the title "when dividing by 64 or higher" 😆 LOLL
<FromGitter> <ImAHopelessDev_gitlab> wasn't even a dividend.. massive fail
<FromGitter> <Blacksmoke16> rip
<FromGitter> <ilanpillemer> @tenebrousedge tomorrow I will go through all your comments and update my solutions accordingly. Thanks again! Much appreciated.
<FromGitter> <tenebrousedge> you are most welcome
<FromGitter> <ilanpillemer> Having been using Go for the last year which is spartan by design, this plethora of methods in the standard library is fascinating.
<FromGitter> <ilanpillemer> For example in Go you would roll your own max method for an Int.
<FromGitter> <ilanpillemer> Or permutations.
<dwdv> Same story with Ocaml. Stdlib is rather small, but atleast they have lazy seqs. :)
<FromGitter> <ilanpillemer> You do get stuff for not trivial things like Ring Lists and Heaps.
<FromGitter> <ilanpillemer> But if the authors of Go think it's 'trivial' you don't get it.
<FromGitter> <ilanpillemer> I suspect it's because of the lack of generics
<FromGitter> <ilanpillemer> Even a last seq can be seen as a trivial closure.
<FromGitter> <ilanpillemer> Lazy seq I mean.
<FromGitter> <tenebrousedge> Go is a mystery to me. I think I would need a lot of libraries to work in it effectively
<FromGitter> <ilanpillemer> It's C with garbage collection and concurrency primitives.
<FromGitter> <ilanpillemer> And improvements for various things.
<FromGitter> <ilanpillemer> Imho
<FromGitter> <ilanpillemer> Basically created by the authors of C.
<FromGitter> <ilanpillemer> Based on lessons learned
<FromGitter> <tenebrousedge> I'm aware of that much, I just question their choices
<FromGitter> <ilanpillemer> And targeting large scale Google size cloud based system programming.
<FromGitter> <ilanpillemer> Compilation time on massive distributed large code bases that require distributed compilation
<FromGitter> <ilanpillemer> Etc