【问题标题】:how to load a module that contains whitespace in ghci如何在 ghci 中加载包含空格的模块
【发布时间】:2019-11-20 10:28:15
【问题描述】:

我想直接从 GHCi 加载模块 C:\Users\ymelk\OneDrive\Desktop\Computer Science\Works\Assignments\Functional Programming with Haskell\ex1 但是当我放入时

:l C:\Users\ymelk\OneDrive\Desktop\Computer Science\Works\Assignments\Functional Programming with Haskell\ex1 

ghci 说target C:\Users\ymelk\OneDrive\Desktop\Computer' is not a module name or a source file

我想这是因为我有空格。 解决方案之一是写我的文件名称,如 camelCase norm 但这太长(很多文件)

有没有办法加载包含空格的模块?

【问题讨论】:

    标签: haskell ghci


    【解决方案1】:

    您可以用引号 (") 将其括起来,例如:

    Prelude&gt; :l <b>"foo bar.hs"</b>

    你需要转义反斜杠,所以:

    Prelude&gt; :l <b>"</b>C:<b>\\</b>Users<b>\\</b>ymelk<b>\\</b>OneDrive<b>\\</b>Desktop<b>\\</b>Computer Science<b>\\</b>Works<b>\\</b>Assignments<b>\\</b>Functional Programming with Haskell<b>\\</b>ex1<b>"</b>

    话虽如此,带有空格的文件名通常不是一个好主意,尤其是因为 shell 通常将空格视为参数分隔符。

    【讨论】:

    • 过去,许多程序在传递包含空格的路径时都会失败。如今,这种情况不太常见,那些仍然失败的程序通常被认为是有缺陷的并已修复。通常的嫌疑人是 shell 脚本,但即使在那里,也经常使用command "$X" 而不是command $X。新制作的脚本通常是为了避免这种陷阱而编写的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-12
    • 2017-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多