Just a reminder that Dyalog servers will be down for maintenance tomorrow starting at 9am UTC. We expect this to last approximately 4 hours during which time our website and other external services will be unavailable.
Our websites are back up after the server upgrade - it all went well but we do have a few little things to sort out. Thank you for your patience whilst we were offline.
the reason why not being able to implement operators is bad is basically because, well, then you have to implement stuff like "scan with +", "scan with -", "scan with ×", etc.
We are excited to announce #FnConf18 - Asia’s premier Functional Programming Conf Bangalore, Dec 12-16th
Day 1: Pre-Conf Workshops
Day 2: FP Bootcamp (#Haskell, #Erlang, #JVM)
Day 3: Applying FP
Day 4: Mastering FP
Day 5: Post-Conf Workshops
More details: https://functionalconf.com/
Got an interesting story about using #FunctionalProgramming in Production? Share your insights at #FnConf18. Call for Proposals is now open at https://confengine.com/functional-conf-2018/proposals
#Haskell #Erlang #Elixir #OCaml #Scala #Clojure #Java9 #rustlang #Elm #javascript #PureScript #FSharp #CSharp
cmc: given a list of abs paths like `'/etc/hosts' '/etc/passwd' '/usr/include/linux/elf.h'`, render them as an indented tree like (`_` represents a space):
@ngn Yes. k is supposed to indicate between which axes a new axis is inserted (like ,[k]), so a whole number doesn't really make sense, but IBM chose to let a whole mean "before this", I guess.
@ngn Somrething like that, yeah. I've never used it myself, but I guess it is useful to laminate more than two arrays.
In fact, the ⎕ML←3 bracket-axis Mix can do even more; it can select positions of all the axes upon lamination, kind of like a b c⍉ and ,[k l m] had a baby.
I also learned today that replicate is not exactly the same in APL2 and in Dyalog APL.
@ngn True. So maybe we should relax our primitives to ease migration? / can easily and unambiguously determine whether the user wants Dyalog or IBM behaviour.
@ngn In which order would that work? First on k and then on l?
@ngn It wouldn't require any setting at all. Remember, both definitions will cause a length error for the other's argument. I.e. if length error → other definition.
@Adám let me explain: relatively often I encounter dynamic programming problems in which, let's say, a cell in a matrix depends on the cell above and the cell to the left
a simple example is Levenshtein distance
so reduction or scan on two axes would apply a dyadic function on two neighbours to produce the value for the current cell