Why, for example, maps but array?
Lloyd R. Prentice
Sun Aug 15 16:30:21 CEST 2021
Ah, thank you, Łukasz,
All the best,
Sent from my iPad
> On Aug 15, 2021, at 5:21 AM, Łukasz Niemier <lukasz@REDACTED> wrote:
>> But it surprises me that obvious functions like file:move/2
> The problem is that such function is far from "obvious". If you look through many languages you will see, that rarely there is `move` function that moves the file from one location to another. Reason for that is simple - UNIX (I do not know how about Windows) do not have such function, instead there is `rename` function which indeed is present in Erlang . That function has one great limitation - it works **only within single filesystem**. If you want to move file between different filesystems, then it will fail.
> - But, there is `mv` command in shell.
> You may ask. Yes, there is such command, but it operates in 2 different ways, depending on the locations of the files:
> - If source and destination is on the same filesystem, then it just call `rename` and call it a day.
> - If source and destination is on different filesystems, then it reads source file, writes it in the destination (aka, does a copy of that file) and then removes the source.
> So reasons for non-existence of `file:move/2` in Erlang is law of leaky abstractions. Nothing more, nothing less.
> : https://erlang.org/doc/man/file.html#rename-2
> Łukasz Niemier
More information about the erlang-questions