|
Cybernetic Vermin posted:on another subject matter entirely: since you bothered to implement it at one point, do you know a reasonably idiomatic use of the odometer operator (in k and presumably others)? there are simple ways to implement odometer, but you want your dialect's equivalent of base-decode: {+x\'!*/x} (k5) or {x _vs!*/x} (k2/k3) if you just form a cartesian product, you have to make a bunch of nested lists and then flatten them back out to get the same effect; it's less direct, and it gets messier for higher dimensions: code:
as another concrete example, here's a cute way of generating power sets from a list: code:
|
# ? Jan 20, 2020 17:31 |
|
|
# ? Jun 6, 2024 14:12 |
|
Subjunctive posted:I’m suspicious that’s reasonable. I was also excited for arc
|
# ? Jan 20, 2020 17:43 |
|
Plorkyeran posted:racket's trying to become a real language rather than a dumb toy for annoying lispers. naturally the annoying lispers are unhappy about this. i've always wanted to learn Racket is it possible to compile it? also, do people actually used the typed subsets of the language?
|
# ? Jan 20, 2020 17:43 |
|
yes, it can compile to a standalone binary. the only time i ever used typed racket was when i was still in school and could go bother tobias personally if we had issues. it seemed good but unfinished then, but that was 10 years ago so i would hope it's better now. racket doesn't have a lot of industry production use to begin with, so obviously typed racket is going to have even less.
|
# ? Jan 20, 2020 18:03 |
|
Internet Janitor posted:
jesus loving christ, a language that makes mumps look both beautiful and comprehensible
|
# ? Jan 20, 2020 20:31 |
|
code:
you have to learn K's operators before you can read it, and once you do it's very clear and comprehensible our summer interns pick this stuff up in a few days
|
# ? Jan 20, 2020 21:01 |
|
Internet Janitor posted:
no
|
# ? Jan 20, 2020 21:53 |
|
|
# ? Jan 20, 2020 22:17 |
|
so long as APL and its derivatives exist, nobody is allowed to complain about Lisp syntax
|
# ? Jan 20, 2020 22:17 |
|
apl/k/q are all great should be supported as a dsl within other languages, like regex
|
# ? Jan 20, 2020 22:19 |
|
eschaton posted:so long as APL and its derivatives exist, nobody is allowed to complain about Lisp syntax this is like saying that as long as php exists no one is allowed to complain about javascript
|
# ? Jan 20, 2020 22:21 |
|
like I’m a Lisp proponent and still understand why some people initially dislike it, you do have to learn to read “through” the parentheses (same as people new to Objective-C have to learn to read “through” the square brackets) but APL and its derivatives make intentionally-obfuscated Perl and MUMPS both look like goddamn COBOL, the only thing comparable to them in sheer opacity is loving Urbit and it was designed by a crazy bigot to be intentionally opaque and establish a priesthood
|
# ? Jan 20, 2020 22:22 |
|
brb writing some apl code *wipes rear end with keyboard*
|
# ? Jan 20, 2020 22:23 |
|
pointsofdata posted:apl/k/q are all great should be supported as a dsl within other languages, like regex
|
# ? Jan 20, 2020 22:26 |
|
pointsofdata posted:apl/k/q are all great should be supported as a dsl within other languages, such as regex I improved your idea
|
# ? Jan 20, 2020 22:31 |
|
eschaton posted:like I’m a Lisp proponent and still understand why some people initially dislike it, you do have to learn to read “through” the parentheses (same as people new to Objective-C have to learn to read “through” the square brackets) urbit! now that’s a fuckin badlang
|
# ? Jan 20, 2020 22:32 |
|
eschaton posted:like I’m a Lisp proponent and still understand why some people initially dislike it, you do have to learn to read “through” the parentheses (same as people new to Objective-C have to learn to read “through” the square brackets) mumps is a fairly normal imperative programming language with weird looking syntax and numerous footguns because it was invented in the 1960s and still bears the scars of those early constraints apl is an opportunity for lisp and haskell people to experience the sensation of a totally unfamiliar language again, much like the sensation that people who know python or js get when they look at something genuinely different like lisp, haskell, prolog, or forth for the first time. the dissonance between mastery of other things and the unfamiliarity of something new makes many experienced programmers shut down and stick their fingers in their ears. it rubs their egos the wrong way for those who make it past the first filter, the second gut reaction everyone has is to try to recreate the apl primitives as a library for their favorite language, with conventional-looking spelled-out names and all the functions underloaded-apart into more specialized ones. this still misses the point. the notation is important. concise, consistent notation that reveals patterns through idioms instead of wrapping ideas in abstractions is valuable. Aaron Hsu has given some good talks about this: https://www.youtube.com/watch?v=v7Mt0GYHU9A the most frustrating thing about working with apls is that literally every discussion of apl online contains exactly the same knee-jerk critique, formed after scarcely a moment's contemplation of the subject
|
# ? Jan 20, 2020 23:18 |
|
I like to think that my dislike of APL isn't completely knee-jerk, because I did put some effort into learning it, and even helped write an APL compiler that targeted GPUs (not co-dfns, another one). Maybe I just got stuck in the third filter, but I found lots of performance poison in APL. I do get what Iverson was going for, and I can definitely see why APL is nice for some things. Mostly I ended up being disillusioned because all the parallelism promises were hot air. I do sometimes get the urge to properly learn one of the K dialects. Has any interesting publicly available software been written in APL, K, or J?
|
# ? Jan 20, 2020 23:24 |
|
Internet Janitor posted:you'd read x@&:'+!(#x)#2 aloud as "x indexed by where each of the transpose of the count of x take 2"
|
# ? Jan 20, 2020 23:25 |
|
Internet Janitor posted:
what the gently caress even is the point of all this
|
# ? Jan 20, 2020 23:30 |
|
Blinkz0rz posted:what the gently caress even is the point of all this for this kind of philosophizing about the evils of software in general the 'wander into the woods' thread is recommended
|
# ? Jan 20, 2020 23:38 |
|
Blinkz0rz posted:what the gently caress even is the point of all this Internet Janitor posted:here's a cute way of generating power sets from a list:
|
# ? Jan 20, 2020 23:41 |
|
Athas posted:I like to think that my dislike of APL isn't completely knee-jerk, because I did put some effort into learning it, and even helped write an APL compiler that targeted GPUs (not co-dfns, another one). Maybe I just got stuck in the third filter, but I found lots of performance poison in APL. I do get what Iverson was going for, and I can definitely see why APL is nice for some things. Mostly I ended up being disillusioned because all the parallelism promises were hot air. I think the parallelism claims for apl are sort of like the lisp claims about being "good for ai": not impossible, but mostly left as an exercise for the reader. perhaps it was more true by the standards of the day when these languages were young, but the woo has aged poorly nick psaris has written some interesting open-source libraries in q, like his funq project that provides q implementations of a wide range of machine learning algorithms. it's mostly cool how it's possible to distill them all down to common elements and highlight similarities and differences i haven't played with it but nick nickolov of dyalog has released ngn k, which is presumably much faster than mine and based on a more modern dialect of k than kona. my interpreter is still the only one that comes with snake and asteroids implementations, though. dyalog also has some interesting examples on their site dyalog, q, and k all being commercial products will probably forever stunt the open-source ecosystems of these languages, though. it's a shame.
|
# ? Jan 20, 2020 23:43 |
|
yeah was going to say proprietary languages aren't really going to flourish outside of specific ecological niches these days irrespective of their other merits "hmm i'd like to gently caress around with this unusual lang for a weekend. oh a license for the compiler is 10 grand? cool, guess i'll just go gently caress myself then"
|
# ? Jan 21, 2020 00:01 |
|
Zlodo posted:brb writing some apl code i didnt realize your posts were in apl all this time
|
# ? Jan 21, 2020 00:25 |
|
the very thought of people priding themelves on knowledge of niche & legacy PLs infuriates me tbh
|
# ? Jan 21, 2020 00:29 |
|
Internet Janitor posted:I think the parallelism claims for apl are sort of like the lisp claims about being "good for ai": not impossible, but mostly left as an exercise for the reader. perhaps it was more true by the standards of the day when these languages were young, but the woo has aged poorly yeah, high-performance parallelism is really tricky even for experts working on a concrete problem. gpus offer amazing amounts of parallelism but also some painful limitations and the overheads and memory costs make them unworkable for a lot of applications. simd parallelism is incredibly complicated and getting good performance means doing weeks of experiments to discover crazy new micro-architectural limitations that you never even imagined and then channeling that dark magic into precise bits of assembly, and then doing it all over again for the next processor release. concurrent parallelism burns hilarious amounts of power and hardware. none of these things are really a fixable by the programming model
|
# ? Jan 21, 2020 02:34 |
|
SAVE-LISP-AND-DIE posted:It depends on your definition of Lispiness. Clojure tried this and the Lisp weenies refuse to use it because it doesn't implement cons cells, the literal function names car/cdr and it uses reader macros for useful datatstructures instead of reimplementing garbage a-lists and whatever the hell else who cares be fair to the lisp weenies clojure is 0% compatible with common lisp, so it can't use any pre-existing libraries, and is also not faster than common lisp, and also does not have better tooling than common lisp why would anyone who already uses lisp want to adopt clojure? java inter-op?
|
# ? Jan 21, 2020 04:37 |
|
Internet Janitor posted:
ty for this effortpost response to my knee jerk and predictable response. fwiw i'm glad that you have a strange, unconventional lang that you enjoy and get paid to use
|
# ? Jan 21, 2020 06:13 |
|
The seasoned gnu beards laugh when i ask to learn elisp, they say its a really lovely language!
|
# ? Jan 21, 2020 06:33 |
|
excellent bird guy posted:The seasoned gnu beards laugh when i ask to learn elisp, they say its a really lovely language! elisp is lovely but also look at the alternatives would you rather spend your time with vimscript
|
# ? Jan 21, 2020 06:40 |
|
Notorious b.s.d. posted:be fair to the lisp weenies java inter-op is the reason
|
# ? Jan 21, 2020 08:24 |
|
Notorious b.s.d. posted:be fair to the lisp weenies More jobs because the JVM is a safe bet. Rich Hickey is reasonably opinionated about how to build business apps. You could write Clojure in CL but you'd be the only shop doing it. The tooling sucks, apparently it's a direct tradeoff between compiling to Java and supporting good things like conditional restarts and a proper debugger.
|
# ? Jan 21, 2020 10:53 |
|
Internet Janitor posted:apl is an opportunity for lisp and haskell people to experience the sensation of a totally unfamiliar language again, much like the sensation that people who know python or js get when they look at something genuinely different like lisp, haskell, prolog, or forth for the first time. the dissonance between mastery of other things and the unfamiliarity of something new makes many experienced programmers shut down and stick their fingers in their ears. it rubs their egos the wrong way So I want to touch upon this idea, both because I think I can empathize, and also that I no longer understand it. My PL-learning progression went something like Python/Java/C++ -> Lisp -> Prolog -> Haskell, and at some point along the way I also tried Forth for a bit, but disliked it. And I have to say that for as long as I was at Uni, working on stupid and unimportant poo poo, I really enjoyed dabbling with new and obscure languages. However, after finishing my masters and becoming a lead of a small team working on solver/optimizer for a niche combinatoric optimization problem, my PoV shifted much more to Gazpacho posted:the very thought of people priding themelves on knowledge of niche & legacy PLs infuriates me tbh which I ascribe to working in domain that taxes me intellectually, so I don't need to look for intellectual stimulation in the language I write with (not that C++ is not taxing ).
|
# ? Jan 21, 2020 11:37 |
|
that line of argument runs completely counter to my experience with k/q though, they are not at all mentally taxing, less so than on the surface seemingly simpler languages. the real usecase is very much in prototyping computational stuff, where the complexity is such that it is preferred to have the whole thing in front of you tinkering at it, rather than building up layers of abstraction. which also touches upon an earlier question: why are there no significant public projects with k/q/j/apl. beside the proprietary nature of most implementations; even working with k/q for a bunch of years the pattern was very much that any k/q project which grew over time it was rewritten in java. plenty of stuff stayed k/q, but it was then services which were pretty much written-and-done, deployed and spinning away, very rarely touched.
|
# ? Jan 21, 2020 11:54 |
|
Xarn posted:
AMA about working in fintech, the most tedious of techs
|
# ? Jan 21, 2020 11:56 |
|
Nah, I like being happy and undepressed.
|
# ? Jan 21, 2020 12:06 |
|
Cybernetic Vermin posted:which also touches upon an earlier question: why are there no significant public projects with k/q/j/apl. beside the proprietary nature of most implementations; even working with k/q for a bunch of years the pattern was very much that any k/q project which grew over time it was rewritten in java. plenty of stuff stayed k/q, but it was then services which were pretty much written-and-done, deployed and spinning away, very rarely touched. I think part of this (at least for k/q and whatever that thing that one bank tricks its hungarian grad intake into doing) is that the main users are financial institutions which don't do much open source, and someone who knows any of them well will normally be sucked into their orbit by the high pay and job security on offer.
|
# ? Jan 21, 2020 14:13 |
|
Gazpacho posted:the very thought of people priding themelves on knowledge of niche & legacy PLs infuriates me tbh the way people do this with JS is really annoying. people showing off their big brains by telling new starters about all the way they've hosed up. Normally they'd have to keep it to complex features but with js they can do it for null checking.
|
# ? Jan 21, 2020 14:15 |
|
|
# ? Jun 6, 2024 14:12 |
|
I think the discussion of badlang missed an essential element: it should have numeric semantics that map poorly to modern processors, such as a 55-bit mantissa for its floating point types, and overflow semantics that change representation like we put in JS because man who knew it was ever going to end up as machine code anyway
|
# ? Jan 21, 2020 14:59 |