I created a mini-program to retrieve file extensions within the current
directory. However, when I intended to chain-call the apply function in a
sequence, I discovered that constructing a var T from a given T was not
possible. Consequently, I wrote a conversion function, as shown below:
import std/[osproc, strutils, sequtils, sugar]
template `!`(predicate: bool):bool =
not predicate
converter toMutSeq[T](vec: seq[T]):var seq[T] =
# echo "######", vec.addr[]
vec.addr[]
var (output, _) = execCmdEx("dir")
output.removeSuffix()
echo output.split(" ").filter((el) => !el.isEmptyOrWhitespace).toMutSeq()
output.split(" ").filter((el) =>
!el.isEmptyOrWhitespace).toMutSeq().apply((el:var
string)=>el.delete(0..el.find('.')))
echo typeof output
Run
The results of the two outputs are inconsistent, and I suspect that the
statement in the penultimate line might have been overlooked, possibly due to
the misuse of pointers in the conversion function, right?