我在haskell中有一个动态构造的文件路径,最终结果如下:
/abc/def/../ghi/./jkl
Run Code Online (Sandbox Code Playgroud)
而且我想把它减少到更可读
/abc/ghi/jkl
Run Code Online (Sandbox Code Playgroud)
用于打印.在haskell中有一个库函数吗?我看了一遍,找不到一个.写起来并不难,但它有点乱,因为你必须"向前看""...",如果可以,我宁愿使用烘焙功能.
dav*_*420 15
请注意,当涉及链接时,这不仅仅是字符串处理问题:
$ mkdir -p foo/bar
$ ln -s foo/bar baz
$ echo gotcha! >foo/quux
$ cat quux
cat: quux: No such file or directory
$ cat baz/../quux
gotcha!
Run Code Online (Sandbox Code Playgroud)
所以你需要做IO.
最近我可以找到你想要的是canonicalizePath从System.Directory.它返回从根目录开始的路径,所以你可能要结合使用它makeRelative,也从System.Directory.但它确实在运行IO.
| 归档时间: |
|
| 查看次数: |
756 次 |
| 最近记录: |