« first day (1500 days earlier)      last day (1155 days later) » 

12:01 AM
I don't know what that means
of course if you constantly run ⎕FIX on a file it'll get the lastest one
because that's what the file is now
but can I make edits arbitrarily in both directions?
in real time?
while the program is running?
 
ngn
@nathanrogers you seem to be coming from a "session" mindset
 
not really, dyalog APL does
 
don't worry, dyalog -script will be a thing by the next century!!!
 
yeah... I wouldn't bet on it
 
ngn
@nathanrogers well, what happens to a running python program when you modify its source? nothing, right? why should apl be different
 
12:05 AM
ummm... because, like python, or slime, or geizer or cider, or whatever, I like to have my definitions in a place, play with them, modify them, run them again was rinse repeat
often times, in particular when dealing with large amounts of data, I want to cache that object in memory so that I can test operations on it without having to read in all that data, either over the network or off disk
 
Well, everyone has different workflow
but yeah, not having to load large data again is a good thing
 
right, but the interactive model is the model as used by lispers/schemers/clojure...ers/aplers, and many oth-ers
 
It's probably one reason why Jupyter is so popular in the data science world
 
its a useful model when you're not doing, say logic. I prefer if doing logic to write, but I prefer when transforming data to evaluate
when dealing with streams and networked events, often times the setup takes forever if the project is significant enough in size, and I really don't want to tear everything down and start over
its much easier just to have modifications read straight into the repl or in dyalog's case, the session
I personally can't really tolerate the "change 1 line: compile: execute" loop
 
ngn
so, the cost of setting things up is what keeps you in a long-running session
 
12:10 AM
time cost, yes
and interactivity
those are the 2 primary reasons I use repl's and the dyalog session to program
 
ngn
my argument against developing in the session is: it's too easy to get into some state for which you don't remember how you got there, and next time your restart the interpreter it will behave differently
 
so don't declare a global ever
 
@ngn I wish other langs had ways to mix both a REPL & file-editing. A file is the best place to program, and a REPL is thr best place to test/play around with it
 
everything should be initialized by an entry point
everything should be independent
 
ngn
should
 
12:13 AM
when loading asdf modules and it doesn't load by itself, I create a new module
if I can't highlight an entire file and C-c C-c into slime, there's a dependency, and the part that can't compile needs to be elsewhere
and then there's quickload, which will load an entire project in dependency order
I get what you're saying, but I guess I have created borders around my programming style that don't get me to those points
perhaps its because I'm only ever working on problems in isolation. I'm writing class methods around encapsulating a large collection of data from an API. I define an instance of that class as global so I don't need to constantly load in the API data, at which point I write functions around that data
with that workflow I never really get to a place where the repl is in a state that I can't replicate
can't just go willy nilly delcaring variables everywhere
 
ngn
my workflow is: vim file.k and ./file.k (the latter being on a shortcut in vim). that's all i need.
 
you neglect to mention the "try to comprehend why it crashed" and "figure out where it went wrong on your mental stack"
 
ngn
i don't work with big data. if i had to, i'd take a small sample so things start quickly.
 
working with small samples is a good starting point, but often direct solutions are slow for unexpected reasons
 
idk I really like working in the repl, I wish integration with files wasn't so painful
 
ngn
12:21 AM
@nathanrogers printf() debugging works in any language :)
 
that it does
 
the easiest solution for me is to work out stuff in the repl and copy paste the solutions into a file or something
 
and that's what I use when a repl isn't handy
 
that's my most productive way of doing things
 
but the repl is integrated printf around any arbitrary data
 
12:22 AM
@rak1507 +1
 
which is why I coudln't understand the situation with tables earlier
 
ngn
@rak1507 well, it's almost the same as mine except i don't have to copy paste
 
@rak1507 I skip the copy past and learned to use load/reload in whatever fashion is available for a language
I can't stand coding directly in the repl because its too easy to make typos
so slime lets me send code to the repl properly formed, or I edit the .py file and use importlib.reload to reload the source for a module
or us ]link.create # 'mydir' -source="both"
 
@nathanrogers that's the thing, if you code in the repl and make a typo, it's literally 0 seconds to change
whereas in a file, it's slightly more than 0 seconds
 
not so
 
ngn
12:24 AM
@rak1507 rougly 0
 
in python you have to re evaluate each line of a def
and in slime too
 
oh well if you mean literal code execution, yeah
personally I just never write code that isn't instant
 
@ngn but you lose the ability to iteratively define test inputs and temporarily once call things as needed
 
like i need to load a large defun that's obnoxious to type directly into sbcl even with rlwrap or something
 
ngn
@dzaima add something, run, add another thing, run, etc. why wouldn't it work "iteratively"?
 
12:25 AM
it's just ever so slightly clunkier
 
It's all personal tastes (and personal experience), please don't fight about it
 
@rak1507 idk, dyalog, slime, or vim-slime with insert repl are the best coding environs I've had the pleasure of working with.
 
ngn
@rak1507 was that a reply to me?
 
@ngn yes
@nathanrogers yes, I'm agreeing with you :)
 
@ngn in a REPL, you add, run, get the result. In a file, you have to clean up afterwards, removing things you might want later (or have a gazillion commented test temp lines)
 
ngn
12:27 AM
@rak1507 no clunkier than typing ]some.ucmd.i.cant.even.remember
 
@rak1507 vim slime means I have vertical split pane, one with vim one with a repl in the other tmux pane, and I "send" properly formed bodies of code over to be evaluated
 
@dzaima You have a separate test script for that.
 
or say you have something like
foo←slow thing
bar←typofunction foo
in the repl you can evaluate foo once and then start working on it
 
yes, but then like you said you have to copy paste it over
 
@ngn I agree, the current state of link/other things is basically unusable for me IMO
but working in the repl + copy paste into notepad + save in files works fine for me
 
12:28 AM
but if you're already editing it in vim presently, then you already have it properly formed, you don't need to copy it anywhere
 
@Bubbler how does that change anything, other than now there being another tab to worry about?
 
I don't think you are getting the workflow I'm describing. Have you used slime?
 
ngn
@nathanrogers whom are you asking?
 
I'm confused now :D I think we're all disagreeing with each other slightly or something
 
12:32 AM
pane of text with vim | pane with repl running

I can put my cursor over text, that is already saved in a file, and it "sends" to the repl pane and evaluates
 
6 mins ago, by Bubbler
It's all personal tastes (and personal experience), please don't fight about it
 
yeah that sounds pretty good to me
 
so it eliminates the distinction from code file and session
 
@Bubbler I wouldn't say it's a fight, just a discussion, for me it's certainly interesting to get other people's points of view
I've already learnt about slime, which sounds good, so for me this has been a net positive
 
your code is already saved to a text file, nothing to copy paste
and typos are no issue, because your cursor is still in the text file
 
ngn
12:34 AM
@Bubbler is right. let's fight about something more divisive.
 
@rak1507 vimslime with tmux allows you to use this process for anything that has a repl
@ngn like ÷0
that's pretty... divisive
 
as an example, today i was playing around with simhash in dzaima/APL. There I had a single function, sometimes tweaked a bit, a couple persistent test strings, and a whole lot of temporary test strings. Outputting just the hash of a single string, comparing similarity of previous strings, and defining more strings to play around with, were all randomly interleaved, in parallel to editing the function itself
 
@ngn ⎕IO←0 or ELSE!!!!
 
÷0 is...
(•_•)
( •_•)>⌐■-■
(⌐■_■)
divisive
@rak1507 what does :Else have to do with it
leave control structures out of it
 
lol
 
12:36 AM
how about proper ternary's in APL
 
I mentioned APL to one of my friends, and then a few days later they asked me for help with some code... I was so excited until they showed me something like
∇foo
:For i :In ⍳10
...
:EndFor
 
megaOof.mp3
 
Ooh, Python
 
@nathanrogers unneeded if programming in an 'array oriented' way whatever that means
 
or C++ or Rust or...
 
12:38 AM
@dzaima the worst part about a REPL is scrolling to the line you want to edit. The function is edited rarely, so having it in a separate tab (or auto-loaded file) would be helpful to remove most cases of editing older lines
 
yep the whole thing was basically a python translation
@dzaima )ed ftw!
 
@rak1507 "unneeded" but so are for and while and switch, and whatever else
but its nice to have
 
Disagree if all control structures were removed from the face of the earth it would be a much happier place
 
@rak1507 unfortunately, not in dzaima/APL on the commandline
 
:for -> ¨, :while -> ⍣, :switch -> ⊃ ⌷ [] ...
 
12:39 AM
a← bool(arg) ? 1 : 0 is nicer than a←{bool ⍵: 1 : 0} arg
 
Time to introduce {...}⎕IfThenElse{...} boolean
 
⍣ is "until" c'mon
 
@nathanrogers and a←arg≠0 is nicer than both
 
@rak1507 please explain libraries to me
 
@rak1507 Unfortunately, those are sometimes necessary (unless you're talking just about APL)
 
12:40 AM
@rak1507 I'm using a trivial example... obviously, but I'm saying that conditional assignment
 
@Wezl well at least APL has some stuff... K on the other hand appears (and this is just an appearance, it could be wrong) to have nothing
 
@nathanrogers clojurians
 
is nice to have
 
@user just APL
@nathanrogers and any non trivial example will not be idiomatic APL
 
ngn
@rak1507 k proper has ffi, of course
 
12:40 AM
I get it
 
If you're doing manual if else checks on individual scalars, you're probably doing something horribly wrong
 
but sometimes, conditional assignment is just nice to have
like ¨ is nice to have
 
@ngn yeah
 
so is ⍣ and ⊂
like, you know early APL had no such thing as nested arrays right?
but they're pretty nice to have
 
I feel like control structures/classes/etc are so far outside the language
if there's like a venn diagram or something, core APL is in the middle, stuff added that's not really core to the language but makes things a bit nicer is just outside, and then :For is in another galaxy
 
12:43 AM
I'm not arguing for them
I write exclusively dfns unless some kind of mutation requires that it be a tradfn
 
@rak1507 they're pretty non-array-y, but sometimes things aren't all array-y
 
right
 
yeah
imo it's better to force APL to do things it's really not meant to than to introduce new ways of letting it do them 'nicely'
 
if that requires 47 ¨s so be it
 
12:44 AM
or true error handling
writing to the filesystem
sockets
lots of things that aren't array-y that you can't do anything meaningful without
 
true
 
@nathanrogers mutation is never required >:| (hopefully leads onto another divisive subject)
 
lol
 
if you look at the rest of that project, not a tradfn to be found outside of the "build" directory @rak1507
 
ngn
@Wezl +1 (non-mutating incrementation)
 
12:47 AM
the day someone makes a pure functional array language with a Maybe type for error handling I will give them all my money
 
@Wezl well, until linux supports file monads, and stream monads, and the real world stops changing its own state, there will always be a need for mutation somehwere. it should just be isolated, like in github.com/the-carlisle-group/APL2XL/tree/master/APLSource/Main/…
all the true mutation happens inside the build directory
everything else is functional
 
ngn
@rak1507 haskell?
 
exactly
 
haskell with a good array processing library would be the only language I would ever use again
 
"array language" -- not objective
 
12:48 AM
@rak1507 gotta learn scheme
 
tried it, not a big fan, it's ok though
 
except for I will roll out my own functional language and push haskell out of the window
 
define "tried"
 
@Wezl actually, I hope to push some imperative language out instead
 
@nathanrogers played with it for about 10 minutes lol
 
12:49 AM
yeah, def not enough
if you're still in the "wahwahaw parenthesis wahawhwa" stage, you haven't "tried it"
 
nah I don't mind the parentheses
 
I'm really loving scheme right now as I translate some CL code to it, but my code hasn't started running yet so maybe my contentedness is getting ahead of me
 
I genuinely honestly think that "array language" or not is not the thing. "A generalized universal notation for computing" I think is the thing, I just think that since arrays are a parallel to linear algebra, it makes defining a generalized universal notation for computing on arrays more achievable since there is already a lot of notation for and research around the subject.
 
Except that it is not well researched as you might think
 
I don't think APL takes it far enough. File system interaction, stream interaction, server spawning and configuration, all of this should be notationalized
@Bubbler you're assuming how much I think its researched
 
12:52 AM
unrelated:
 
I'm just saying that there hasn't really been a lot of research around notation for other forms of computing
 
CMC: do my conjugation homework for me
 
lol
 
not until you pay CMC a conjugal visit
 
what language? the only language I have any reasonable chance of being able to do it in is latin
 
ngn
12:53 AM
@Wezl apl, 1 byte: + ("complex conjugate")
 
@rak1507 italian
 
italianicized
 
I prefer scheme to APL, and APL to italian
 
lol
 
I prefer APL to life, and scheme to anything that isn't APL
I just wish I had scheme powers in APL
 
12:54 AM
what do you like in scheme that you can't do in APL?
 
then I wouldn't have to worry about features added or not in the core language
 
@rak1507 Imna write an awk script some time to count my lols
 
@Wezl for the lulz?
 
<shapr> is the bot written in APL?
 
12:56 AM
@Wezl I have a 3rd of them
@DyalogAPL no
 
<Wezl> <rak1507> no
<shapr> aw
<Wezl> IIRC it's written in raku
 
<shapr> Are there network libraries in APL?
 
@nathanrogers Dyalog has .NET power instead, which may or may not work for you
 
<Wezl> shapr: <dzaima> github.com/moon-chilled/SEProxy
<shapr> Actually, I want to know the recommended setup for APL in emacs
<shapr> that's nifty
<shapr> My first Haskell project was an IRC bot
 
12:59 AM
So in theory you can use anything that is supported in .NET
 
@rak1507 macros, closures, everything functional
 
How clunky it is is another issue
 
@DyalogAPL DYALOG APL in emacs is tough, because the only package I can find is the gnu-apl-mode which supports the incorrect DYALOG unicode letters
I had a rough time debugging something because gnu-apl-mode uses the wrong ⋄
 
btw shapr can't hear you
 
<shapr> Any APL + emacs users here?
 
1:00 AM
@Bubbler no that's not what I'm talking about
 
@Wezl well sure if you're missing scheme-y features in APL not much you can do, but it's like saying you miss for loops in haskell
 
I can't add new glyphs, I can't extend syntax, etc
there are no "lisp macros" in dyalog
 
<Wezl> shapr: <nathan-rogers> DYALOG APL in emacs is tough, because the only package I can find is the gnu-apl-mode which supports the incorrect DYALOG unicode letters
<shapr> hm, maybe I should stick with J then
<Wezl> I'd suggest going to the SE chat at chat.stackexchange.com/rooms/52405/the-apl-orchard
 
I can generate code that generates code well enough but it isn't the same as modifying the AST IRT
the way I see it, I should at least, at build time have the ability to define my own glyphs, if it can't be supported in the language
2
the only way to experiment with notation is to define my own language
 
@nathanrogers Well then APL is simply not the right language
 
1:02 AM
@nathanrogers definitely, and please people take notes
 
I think APL's core IS the right language, but provided a few "programming features" would make APL the generalized notation for computing that will take us to the stars
 
though I do agree with defining own glyphs
 
I like your optimism
 
@nathanrogers then forward compatibility becomes a problem - the language becomes literally unabls to define any new syntax
 
for me it isn't optimism. its dire frustration
 
1:04 AM
@dzaima the new extensions should be available as libraries then
 
@dzaima I'm of the clojure mindset. A strictly controlled core language, with support of hygienic macros that allow for user extension, and user definition of domain specific notation
 
define "hygienic macros"
 
I don't think that's particularly suited for the things APL should be suited for
 
@Wezl bc now all the special glyphs are built-in
 
Hygienic macros are macros whose expansion is guaranteed not to cause the accidental capture of identifiers. They are a feature of programming languages such as Scheme, Dylan, Rust, and Julia. The general problem of accidental capture was well known within the Lisp community prior to the introduction of hygienic macros. Macro writers would use language features that would generate unique identifiers (e.g., gensym) or use obfuscated identifiers in order to avoid the problem. Hygienic macros are a programmatic solution to the capture problem that is integrated into the macro expander itself. The...
scheme vs common lisp macros
 
1:05 AM
@Wezl I mean things like adding a new function form, new matched brackets, multiline comments, etc
 
ngn
@nathanrogers scheme is the original
 
@dzaima that's also fixed in lisp so just switch to scheme basically ::), with code as data and reader macros
 
yes I know... I've been talking about scheme and lisp for the past, idk 2 hours
 
ngn
@nathanrogers you mentioned clojure, but i think credit should go to scheme, even if that makes it more than 2 hours :)
 
poor shapr
 
1:08 AM
I mentioned clojure because the implementor believes as I said in that comment, a tightly controlled core language that won't change much over time, but allows the language to be extended by users and libraries
 
@Wezl so you'd need to... import multiline comments?!?
 
the clojure philosophy is stated in almost direct opposition to the CL mindset, which is "kitchen sink"
 
@dzaima Actually multiple languages do that (even outside the lisp world).
 
@dzaima you'd have I-beams otherwise, so sure
 
@ngn I was referring to @dzaima s comment that it detrimentally effects the languages future compatibility, and I agree, it should
@ngn as is the case with: clojure
 
1:10 AM
I have never fully understood how the AST-level macros actually work, so I have no idea how it can fit into APL
(or, more specifically, the syntax for defining such macros)
 
@Bubbler that's why you need to learn a lisp or a scheme. APL dialects and Lisp dialects are at the top of the language hierarchy of expressivity
and both have strengths over the othre
but for me, they share the throne of language design
 
ngn
and k is in the middle
 
@Bubbler and people complain about java being verbose?
 
ooh @shapr 'Languages: english, swedish', how well do you know APL again?
 
and both need to learn from the other. DFNS and lexical scope learned from Lisp, but there's still so much more
 
@ngn I'm lumping K with "apl dialects"
 
 
ngn
@nathanrogers i think it's gone too far from apl already
 
but I get that K shares a lot of concepts with lisp
 
^^^ scheme extending the syntax
 
ngn
1:13 AM
@nathanrogers see the link
 
I saw
I think K deviates too much from the concept of notation, sacrificing notation for terseness
I think terseness isn't the correct goal, but brevity is
 
what's the difference?
 
terseness: sparing in the use of words; abrupt.
brevity: concise and exact use of words in writing or speech.
brevity is the soul of wit
tersity is the soul of shortness for shortness' sake
one is elegant, the other is short
short can be elegant, but not all things that can be described shortly are elegant
brevity is the balance of clarity and shortness
which leads to elegance
 
ngn
@nathanrogers how does it "deviate from the concept of notation"?
 
there is a different kind of beauty in tersity, but the pursuit of the shortest often obfuscates meaning
K deviates from the concept of notation by hyper-overloading symbols to the point of absurdity, due to the restriction that only ascii characters may be used
and it also seems to emphasize functional abstraction over data abstraction, but that might be my lack of experience with it
 
1:19 AM
I believe in making DSLs that can do things tersely, not a condensed language that can do everything tersely-- up to a point
 
@Wezl I'll upload my GPL, GLFW parser
there's a dsl there, but it isn't terse, its brief
 
I... am starting to think APL can have user-defined macros
 
e.g. April has APL for when you need it, but it's built on a more powerful language IMO
 
I'm feeling more and more need to implement my own APL to experiment with various ideas
 
@nathanrogers GLFW??? that's terse language that I don't understand
 
ngn
1:21 AM
@nathanrogers overloads - that's a common complaint, but being able to type on any machine is so nice..
 
@Bubbler what I'd really like to see is a language level config file that contains a map, where you can map any "symbol" in the symbol sense to any procedure
@Wezl GLFW as in opengl
I have an openGL parser that loads in opengl bindings
 
ah ok
 
remind me later if you're interested no time now
and I need to clean it up, haven't touched it for a solid 2 years
need to format and comment, and document a bit
but I'm surprised at its cleanliness, and it was written by me :P
but there's also some obvious lack of familiarity with dyalog in there as well
so I want to refactor too before I get it up in github
but the DSL is super tight and clean for parsing the various GLFW/GLEW files
 
something in me is addicted to rewriting code. I got half of something working, and a month later I haven't worked on that at all but I've reimplimented it in another language
 
@Wezl this is a portion of the DSL
agltypes is a relational array to gltypes mapping library and c types to APL types of ⎕NA
 
1:28 AM
includes←∨/∊
 
it is a dsl after all
and you'll notice there's a lot of operators so these combine very nicely
without a lot of trains everywhere
 
I see a lot of ¨s :(
 
there's a lot of nested vectors
like I said this was a project I wrote a long time ago
 
ah
fair enough
 
but the actual parsing sections are quite clean
 
1:30 AM
@rak1507 if you pressure the author of this enough, you might get what you want :)
 
@rak1507 this reads super nice
 
@Wezl doesn't look very array-y to me
also no examples
 
@rak1507 but it's early in development so what I'm saying is you can change that
 
idk what 'based on graph reduction' means but it sounds ... interesting
 
btw warning: promotion that repo was put up like 2 weeks ago and it has two stars already, you should use codeberg.org
(no affiliation)
 
1:34 AM
advantage over gh?
 
open source
dark theme
(I know gh has one, but it started with a dark theme so it's objectively better :)
 
gh has a dark theme now
lol fair enough
 
also xpqz's there codeberg.org/xpqz
(I think you need an account to use dark theme though)
 
'⍝⎕∨∊∩⊤ ○⌈ ⊂○⎕∊ ⍳∩ ⍝⍴⌊', nice
 
btw thanks for the Outspoken badge ppl
:( there's no gold chat badge
or maybe it's better if there's less SE manipulation?
 
1:53 AM
@Wezl gratz
@nathanrogers i see you use material theme as well
@Bubbler and so it begins
 
@Razetime well if someone would make a better one
@rak1507 so... I've not found an effective strategy for handling strings without ¨
especially when those strings are already nicely read in as lines from a file, as a nested character vector
 
strings are a pain I agree
 
if you know of any nice strats for strings that don't involve ¨, I'd love to learn
 
depends what you're doing with them I guess
 
I find that many of my problems take the form of nested vectors, and ¨, but that's probably a limitation in my skillset
@rak1507 well in the example images, for example, I'm searching for lines that include or begin with certain text, and then formatting them according to the "type" of lines based on the pattern matching
if there's an array operation for that, that'd be slick
but usually, what winds up happening is I might identify lines where that's true, compress those lines, then I parse each one
 
2:02 AM
you could probably do something with the rank operator
not sure if it'd be any faster or better than ¨ though
 
right, but I've been informed that for performance rank and each are pretty similar
 
but then you need to make the text rectangular, which may be an issue
 
that too
lots of extra padding
 
@nathanrogers I don't think array style is ever going to be as easy as nesting here, but you might find my markdown processor to be interesting reading. I did it in an array style as much as was convenient.
 
looks cool
but I can't read bqn
 
2:05 AM
The BQN compiler is much more strict about array style, but it's solving different problems.
 
i can fry it though
 
@nathanrogers Just the comments have a fair amount of good information.
And there's a BQN-Dyalog dictionary that might make reading faster.
 
@nathanrogers there is no better colour palette
 
 
1 hour later…
3:17 AM
@Marshall @Adám That's actually a great question. I find that most of my solutions begin with data in the form of nested lists, whether reading or writing to files, generating or parsing text. I tend to find an intermediate representation that I know how to work with, or some kind of intermediate expression that gives me a launching point for the next step in a procedure, but I rarely find myself doing array operations unless they're simple arrays, and I rarely have simple arrays.
What are some ways that I can begin thinking differently about representation of data so I can begin approaching solutions differently. I feel like so much of my hang ups when writing stem from getting caught in the intermediate representation or some intermediate transformation when there is a bigger picture representation or transformation that does what I want more idiomatically.
 
@nathanrogers I think my partition representations article is pretty useful. It ties into the sparse (i.e. Indices) representation but I don't know of a nice writeup on that. An approach I often take is to identify a representation and try to figure out various concrete objects it might represent. Usually there are quite a few.
Bob Smith's original paper on partitioning, included in this pdf, is also a very nice resource because it shows how to do a few things on partitioned data with completely flat arrays.
Another good tool for data with repetition is decomposing into unique values and indices into them, which can't remove nesting but can reduce its impact. It does make operations that only care about which values are equal, but not their actual values, flat.
 
3:36 AM
Hi all, am I crazy or does the Pascal's Triangle example on Wikipedia have syntax errors? I tried it on both GNU APL and Dyalog, both reject it. See

https://en.wikipedia.org/wiki/Talk:APL_syntax_and_symbols#Solving_Puzzles_:_Pascal's_Triangle_example_has_errors.
 
@Russtopia How about if you run it in Dyalog with ⎕ML←3? That looks suspicious.
 
@Marshall Aha, that works in Dyalog, at least.
I almost think GNU APL is hitting a bug on it, since the parse line it spits out has a garbage char at the end.
 
I don't know GNU well enough to say. Given the use of a dfn, it seems pretty likely it was written for Dyalog, so I think it would be better to use rather than as ⎕ML←1 is the default.
 
OK thanks. Yeah I read that GNU APl's support of {} is a bit limited (no guards or multiple statements ...}
 
@Russtopia They're more of an alternate syntax for tradfns than an attempt to support dfns.
 
3:48 AM
@Marshall thanks. I'll re-read the ⎕ML help, good to know
 
 
1 hour later…
4:48 AM
<abrudz[m]> shapr: See apl.wiki/Text_editors for two utils that should make using Dyalog easy with emacs.
 
 
5 hours later…
9:36 AM
@Wezl Do your other fonts also support APL? If so, any way to get them?
 

« first day (1500 days earlier)      last day (1155 days later) »