首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何确定正在运行的Haskell脚本或应用程序所在的目录?

要确定正在运行的Haskell脚本或应用程序所在的目录,可以使用以下方法:

  1. 使用getCurrentDirectory函数:

在Haskell中,可以使用System.Directory模块中的getCurrentDirectory函数来获取当前目录。以下是一个简单的示例:

代码语言:haskell
复制
import System.Directory

main :: IO ()
main = do
  currentDir <- getCurrentDirectory
  putStrLn $ "当前目录: " ++ currentDir
  1. 使用getExecutablePath函数:

System.Directory模块中的getExecutablePath函数可以获取当前运行的可执行文件的路径。可以通过splitPath函数来分割路径,然后获取目录部分。

代码语言:haskell
复制
import System.Directory
import System.FilePath

main :: IO ()
main = do
  executablePath <- getExecutablePath
  let dir = takeDirectory executablePath
  putStrLn $ "可执行文件目录: " ++ dir
  1. 使用getAppUserDataDirectory函数:

System.Directory模块中的getAppUserDataDirectory函数可以获取当前应用程序的用户数据目录。这个目录通常是操作系统中的用户数据目录,例如/home/username/.local/share(Linux)或C:\Users\username\AppData\Local(Windows)。

代码语言:haskell
复制
import System.Directory
import System.FilePath

main :: IO ()
main = do
  appDataDir <- getAppUserDataDirectory "MyApp"
  createDirectoryIfMissing True appDataDir
  putStrLn $ "应用程序数据目录: " ++ appDataDir

这些方法可以帮助你确定正在运行的Haskell脚本或应用程序所在的目录。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何从Bash脚本本身中获得其所在的目录

问: 如何从Bash脚本本身中获得其所在的目录? 我想使用Bash脚本作为另一个应用程序的启动器。我想把工作目录改为Bash脚本所在的目录,以便我可以对该目录下的文件进行操作,像这样: $ ....但是在以相对路径的方式去执行脚本时,获取的目录信息是相对路径,不能满足其他需要获取绝对路径的场景。 如果要获取绝对路径,可以使用如下方法: #!...测试结果如下: 另外,可以根据第一种方法结合使用 realpath 命令,也可获取脚本所在目录的绝对路径: #!..."cd"来更改目录 为什么在可执行文件或脚本名称之前需要..../(点-斜杠),以便在bash中运行它 shell脚本对编码和行尾符敏感吗

34920

loadrunne如何只测某个方法,或只压测录制的脚本部分代码的运行用时

做压测时,因为需要只需要我去调用服务器工程上的一个service层(springmvc)的方法: ?...我只需要调用这个接口下的call方法,去编写这样的一个脚本是十分困难的,小编h想了一天也没有头绪,后来在同事的建议下还是使用录制脚本的方法去修改录制脚本,进而得到我想要的。...录制脚本需要登录服务器上的这个工程,还要点击相应的页面,然后填写入参,提交。其中我只需要填写入参,提交这些步骤,因为这个步骤是最接近我直接调用call方法的代码过程。...因此登录和点击到此页面不是我需要的,因此我在脚本页面做了以下修改: ?...曲线的名字就是lr_end_transaction(“Trans_1”,LR_PASS);中的LR_PASS。

55220
  • Debian 7上的Yesod,Nginx和MySQL(Wheezy)

    Yesod是一个基于纯函数式编程语言Haskell的Web框架。它专为高效开发类型安全,RESTful和高性能Web应用程序而设计。...实际上,Yesod应用程序包含一个名为Warp的http服务器,它使用Haskell编写,运行时间非常快。如果没有安装Apache或Nginx等http服务器,您可以运行独立的Yesod应用程序。...发出命令后cabal build,您的应用程序(myblog)将被构建并放入$HOME/myblog/dist/build/myblog/。这是我们要部署的程序。您可以将目录移动到任何位置。...请注意,它还不能顺利运行,因为我们没有指示您的站点的静态文件所在的位置。我们将在下一步中执行此操作。请按Ctrl-C立即停止。...如果您希望您的站点作为守护程序运行,这意味着在一个恒定的运行状态下,您可以创建一个init.d脚本。

    82820

    以太坊主网上测试工具推荐

    而你是一个才华横溢且有抱负的开发人员,希望创建下一个革命性的金融应用程序,这将有助于拯救我们所有人并恢复和平。...唯一的问题是,你不知道从哪里开始,并且你有很多问题: 你如何编写合约? 你如何测试合约? 你如何与其他协议交互? 你如何调试交易?...EVM实现而不是实际的测试网运行代码。...如果你想进行确定性测试(不会在星期二通过,而星期五失败),我强烈建议你使用dapp.tools.其背后使用hevm,这是Haskell的EVM实现 使用Haskell编写的EVM(而不是Python或JS...你唯一需要关注的应该是主网,网络ID为1。 如果你正在与多个协议(例如OneInch,Curve,Uniswap,Aave,Compound等)进行交互,则很有可能。

    1.2K20

    Java程序员新手老手都离不开八大开发工具

    1.Eclipse 尽管IntelliJ IDEA、NetBeans和一些其他的IDE正在日益普及,但是有调查表明,Eclipse仍然是几乎半数Java开发人员首选的开发环境。...Eclipse的工作流程可分为三个方面:工作台,工作空间和视角。工作台作为到IDE的出发点。工作空间将项目、文件和配置设置组合在一个单独的 目录下。视角定义工具、视图和有效设置。...一个基本的JUnit测试包括测试类、测试方法、以及执行测试的功能。 JUnit使用标注来确定测试如何构造和运行。...官方网站:http://findbugs.sourceforge.net/ 7.VisualVM 包含在JDK中的VisualVM是监控和审查Java应用程序性能的工具。...Groovy的核心优势之一是它的脚本功能。类可以被编译为Java字节码或使用Groovy Shell动态执行。

    86400

    网页错误码详细报错

    - 网关错误  用户试图通过 HTTP 或文件传输协议 (FTP) 访问一台正在运行 Internet 信息服务 (IIS) 的服务器上的内容时,IIS 返回一个表示该请求的状态的数字代码。...例如,如果试图访问的 ASP 页所在的目录权限设为“无”,或者,试图执行的 CGI 脚本所在的目录权限为“只允许脚本”,将出现此错误信息。...• 您没有将试图执行的文件类型的脚本映射设置为识别所使用的谓词(例如,GET 或 POST)。...若要验证这一点,请在 MMC 中右击目录,依次单击属性、目录选项卡和配置,然后验证相应文件类型的脚本映射是否设置为允许所使用的谓词。  • 403.2 - 读访问被禁止。...如果试图运行的 CGI 脚本不返回有效的 HTTP 标头集,将出现此错误信息。

    5.6K20

    Java程序员新手老手都离不开八大开发工具

    1.Eclipse 尽管IntelliJ IDEA、NetBeans和一些其他的IDE正在日益普及,但是有调查表明,Eclipse仍然是几乎半数Java开发人员首选的开发环境。...Eclipse的工作流程可分为三个方面:工作台,工作空间和视角。工作台作为到IDE的出发点。工作空间将项目、文件和配置设置组合在一个单独的 目录下。视角定义工具、视图和有效设置。...一个基本的JUnit测试包括测试类、测试方法、以及执行测试的功能。 JUnit使用标注来确定测试如何构造和运行。...官方网站:http://findbugs.sourceforge.net/ 7.VisualVM 包含在JDK中的VisualVM是监控和审查Java应用程序性能的工具。...Groovy的核心优势之一是它的脚本功能。类可以被编译为Java字节码或使用Groovy Shell动态执行。

    91230

    Java程序员新手老手都离不开八大开发工具

    1.Eclipse 尽管IntelliJ IDEA、NetBeans和一些其他的IDE正在日益普及,但是有调查表明,Eclipse仍然是几乎半数Java开发人员首选的开发环境。...Eclipse的工作流程可分为三个方面:工作台,工作空间和视角。工作台作为到IDE的出发点。工作空间将项目、文件和配置设置组合在一个单独的 目录下。视角定义工具、视图和有效设置。...一个基本的JUnit测试包括测试类、测试方法、以及执行测试的功能。 JUnit使用标注来确定测试如何构造和运行。...官方网站:http://findbugs.sourceforge.net/ 7.VisualVM 包含在JDK中的VisualVM是监控和审查Java应用程序性能的工具。...Groovy的核心优势之一是它的脚本功能。类可以被编译为Java字节码或使用Groovy Shell动态执行。

    1K20

    【网页】HTTP错误汇总(404、302、200……)

    - 网关错误 用户试图通过 HTTP 或文件传输协议 (FTP) 访问一台正在运行 Internet 信息服务 (IIS) 的服务器上的内容时,IIS 返回一个表示该请求的状态的数字代码。...例如,如果试图访问的 ASP 页所在的目录权限设为“无”,或者,试图执行的 CGI 脚本所在的目录权限为“只允许脚本”,将出现此错误信息。...• 您没有将试图执行的文件类型的脚本映射设置为识别所使用的谓词(例如,GET 或 POST)。...如果试图运行的 CGI 脚本不返回有效的 HTTP 标头集,将出现此错误信息。...• 200 命令确定。 • 202 未执行命令,站点上的命令过多。 • 211 系统状态,或系统帮助答复。 • 212 目录状态。 • 213 文件状态。 • 214 帮助消息。

    12.1K20

    为什么 Haskell 是我们构建生产软件系统的首选

    仅当这类纯函数没有副作用(例如在主机系统上创建文件、运行数据库查询或发出 HTTP 请求)时这才能做得到。Haskell 的类型系统就具有这种纯度。...ghcid 会立即捕获程序员在使用 Python 或 PHP 之类的语言编写 Web 服务时遇到的许多运行时错误,并将它们显示为编译器错误。...case 语句使我们能够处理 status 参数的不同可能值。 类型系统可以防止我们在更改域规则时犯错误。假设这个应用程序运行了一段时间之后,我们从用户那里获得了反馈,于是我们需要能够退还发票。...其中一个分支是 Haskell 库有时会使用领域特定语言(DSL)来提高其可用性。与通用语言相反,DSL 是一种小型语言,旨在专门用于表达特定应用程序或问题域的规则。...在 Foxhound Systems,我们使用 Haskell 创建快速可靠的定制软件。是否正在寻找可以帮助您开发新产品或将 Haskell 引入您自己开发团队的帮手?

    1.4K10

    又要头秃?2020年七大AI编程语言大盘点

    一次编写,到处运行。 Java被认为是世界上最好的编程语言之一,过去20年大伙的使用证明了这一点。...它对Java的支持不像其他完全支持的语言那样功能丰富,但它已经存在,并且正在以很快的速度得到改进。 Deep Java Library 由Amazon构建,使用Java来创建和部署深度学习能力。...Goals(目标)定义了根据知识库确定的报表提交的位置。 Queries(查询)定义如何使你的声明真实,以及如何对事实和规则进行最终分析。...即使它们确实发生了,大多数非语法错误都是在编译阶段,而不是运行时捕获的。...Julia源代码的目录结构 Julia提供的下列特性,使其在人工智能编程、机器学习、统计和数据建模中成为一个不可或缺的选项: 动态类型系统 内置的包管理器 能够进行并行和分布式计算 宏和元编程能力 支持多个调度

    1.7K20

    如何在Debian 8上安装和使用Composer

    使用Composer将程序包作为依赖项安装在项目中的过程通常包括以下步骤: 确定应用程序需要哪种库 在Packagist.org上研究一个合适的开源库,Packagist.org是Composer的官方存储库...选择您要依赖的包 运行composer require以在composer.json文件中包含依赖项并安装程序包 我们将通过一个简单的演示应用程序,看它是如何工作的。...此应用程序的目标是将给定的句子转换为slug,这是一个URL友好的字符串。 这用于将页面标题转换为URL路径(如本教程的URL的最后部分)。 让我们从为项目创建目录开始。...vendor/目录是项目依赖项所在的位置。vendor/文件夹不应提交到版本控制; 你只需要包含composer.json和composer.lock文件。...使用nano或您喜欢的文本编辑器,创建一个test.php,我们使用cocur/slugify库的脚本。 $ nano test.php <?php require __DIR__ .

    1.6K20

    高薪AI工程师都在用什么编程语言?2020 年七大 AI 编程语言大盘点

    Java 一次编写,到处运行。 Java被认为是世界上最好的编程语言之一,过去20年大伙的使用证明了这一点。...它对Java的支持不像其他完全支持的语言那样功能丰富,但它已经存在,并且正在以很快的速度得到改进。 Deep Java Library 由Amazon构建,使用Java来创建和部署深度学习能力。...Goals(目标)定义了根据知识库确定的报表提交的位置。 Queries(查询)定义如何使你的声明真实,以及如何对事实和规则进行最终分析。...即使它们确实发生了,大多数非语法错误都是在编译阶段,而不是运行时捕获的。...Julia源代码的目录结构 Julia提供的下列特性,使其在人工智能编程、机器学习、统计和数据建模中成为一个不可或缺的选项: 动态类型系统 内置的包管理器 能够进行并行和分布式计算 宏和元编程能力 支持多个调度

    1.8K20

    盲人程序员的编程生涯

    对于.net编程,我使用visual studio 2005,因为这是我实习时使用的标准版本,而且通过使用Jaws和一系列脚本(比如简化表单设计的脚本),可以使操作变得非常简单。...迄今为止更通用的解决办法是使屏幕阅读器运行在后台,并监视操作系统的活动,然后通过合成语音或者物理点字显示(一般一次显示20至80个字符)提醒用户。这就意味着盲人可以使用任何可访问的应用程序了。...人们通常将这种情况视为缺乏独立性或能力,而我却认为这是纯正的相互依存,因为我很确定那个队友靠他/她自己或着几人轮流都不可能想出那样的设计,如果我依赖他将设计文档化也是如此。...点字显示设备就不那么常用了,相比之下也贵很多,它可以显示40或80列文本,而且可以用在当精确定位/标点很重要的场合。...我知道至少有一个Haskell(译者注:一种纯函数式编程语言)程序员使用屏幕阅读器,并且不使用Haskell的布局规则直接编程,并且不使用非惯用(non-idiomatic)的选项,而是用支持{;}的。

    89030

    MySQL数据库层优化基本概念

    使系统快速运行的最重要因素是其基本设计。您还必须知道系统正在执行哪种处理以及其瓶颈是什么。在大多数情况下,系统瓶颈来自以下来源: 磁盘搜索。磁盘查找数据需要花费时间。...即,它们具有导致不同行为的不同设计折衷。 为了使复杂的应用程序具有可移植性,您需要确定它必须使用哪些SQL服务器,然后确定这些服务器支持哪些功能。...要运行基准测试,请构建MySQL,然后将位置更改为sql-bench目录并执行run-all-tests脚本: shell> cd sql-bench shell> perl run-all-tests...crash-me尝试通过实际运行查询来确定数据库系统支持的功能以及其功能和局限性。...有关基准测试结果的更多信息,请访问此。 使用自己的基准 您绝对应该对应用程序和数据库进行基准测试,以找出瓶颈所在。在解决了一个瓶颈之后(或通过将其替换为“虚拟”模块),您可以继续确定下一个瓶颈。

    1.4K20

    15个node.js经典面试题和答案,核心基础

    1.png 目录 1、什么是JavaScript中的一等函数 ? 2、Node.js 如何工作的 ? 3、Node.js 比其他最流行的框架好在哪里 ?...Node.js 是一个使用 JavaScript 作为其脚本语言并运行 Chrome 的 V8 JavaScript 引擎的虚拟机。...7、你是如何管理 Node.js 项目中的包 ? 它可以由许多软件包安装程序及其相应的配置文件进行管理。 其中大多使用 npm 或 yarn。...在 node 中,它用于创建一个新的 v8 引擎实例来运行多个 worker 来执行代码。 11、module.exports 的用途是什么 ? 这用于公开要在项目其他地方使用的特定模块或文件的功能。...carbon.png 对于上面的示例,我们正在传递回调函数,它使代码不可读且不可维护。 因此我们应该更改异步逻辑以避免这种情况。 14、Node.JS 中的事件循环是什么 ?

    2K20

    5门可能衰落的编程语言

    为了确定哪种编程语言可能在中长期内注定失败,我们查看了 TIOBE 和 RedMonk 的受欢迎程度排名,以及 Dice 的职业生涯帖子数据库,总结出以下编程语言的未来不是太光明,如果你的职业生涯只基于以下任何一种语言...02 Haskell 据称,Haskell 将在 2020 年进行一次重大的更新(由 GHC 和 GitHub 中与 Haskell 相关的仓库可以看出)。...因为 Swift 正在成为一种非常有效的语言 —— 用于构建 iOS、macOS 和即将推出的跨平台应用程序。 04 R 早在多年前,R 是一种越来越流行的数据分析语言。...结合起来既合理又可行,我们在内部数据科学平台上运行它们,但如果我今天要重新开始我的职业生涯,我可能会考虑专注于 Python 而不是 R。...它是一种更通用的语言,有更广泛的应用程序。

    85830

    最易学和最难学的编程语言Top 5

    本文大致确定并比较了最简单的编程语言与高级编程语言,具体如下: 简单易学的编程语言 1、HTML HTML 是用来为大多数网页编码的语言。它使用标签和元素来定义如何显示文本、图像和互动形式。...HTML 经常得到层叠样式表(CSS)的支持,以定义复杂的样式;以及用于脚本程序的 JavaScript。Springboard 认为,HTML 的易用性使其成为入门者的理想语言。...5、Java Java 是一种基于类、面向对象的通用编程语言。它旨在跨环境运行 —— 一次编写,随处运行 (WORA)。它是后端开发人员和安全应用程序中最受欢迎的语言之一。...据说谷歌 Chromium 浏览器、微软的几个应用程序、甚至摩根斯坦利的金融建模都是用 C++ 完成的。...难点在于: 是一种具有特定领域解决方案的碎片化语言 LISP 中的语法广泛使用小括号,这可能很难习惯 4、Haskell Haskell 是一种基于 lambda calculus 的多态静态类型纯函数式语言

    1.3K20
    领券