Path 清理路径vs解析路径vs规范化路径vs简化球拍中的路径

Path 清理路径vs解析路径vs规范化路径vs简化球拍中的路径,path,racket,Path,Racket,Racket似乎有4个函数来创建一条标准路径,但每个函数略有不同。它们是、和 显然,这些函数的作用与它们中的一些函数接受不同的参数不同。但是这些文件在这里没有任何例子。那么,这四个非常相似的函数之间有什么区别呢?如果(memq(系统类型'os')(unix-macosx)) 清除路径将/替换为/ 解析路径解析符号链接 简化路径删除额外的。和 规范化路径生成绝对路径并解析符号链接 (还有。这可能是你想要的。) 下面是一个示例交互,在无意义路径上使用4个函数: Welcome to Racket

Racket似乎有4个函数来创建一条标准路径,但每个函数略有不同。它们是、和

显然,这些函数的作用与它们中的一些函数接受不同的参数不同。但是这些文件在这里没有任何例子。那么,这四个非常相似的函数之间有什么区别呢?

如果
(memq(系统类型'os')(unix-macosx))

  • 清除路径
    /
    替换为
    /
  • 解析路径
    解析符号链接
  • 简化路径
    删除额外的
  • 规范化路径
    生成绝对路径并解析符号链接
(还有。这可能是你想要的。)

下面是一个示例交互,在无意义路径上使用4个函数:

Welcome to Racket v6.10.0.1.
> (current-directory (find-system-path 'sys-dir))
; now in /
> (cleanse-path "foo//bar/baz/..")
#<path:foo/bar/baz/..>
> (resolve-path "foo//bar/baz/..")
#<path:foo/bar/baz/..>
> (simplify-path "foo//bar/baz/..")
#<path:/foo/bar/>
> (normalize-path "foo//bar/baz/..")
; normalize-path: element within the input path is not a directory or does not
;   exist
;   element: /foo
如果
(eq?(系统类型“os)”windows)
,请参阅关于的Racket文档

Welcome to Racket v6.10.0.1.
> (current-directory "/usr/local/bin")
; now in /usr/local/bin
> (normalize-path "racket")
#<path:/Users/ben/code/racket/fork/racket/bin/racket>
> (simple-form-path "racket")
#<path:/usr/local/bin/racket>