如何将 StrLn 放入 Data.ByteString.Internal.ByteString?

2023-12-24

我正在学习 Haskell,并决定尝试编写一些小型测试程序来习惯 Haskell 代码和使用模块。目前,我正在尝试使用第一个参数来使用 Cypto.PasswordStore 创建密码哈希。为了测试我的程序,我尝试从第一个参数创建一个散列,然后将散列打印到屏幕上。

import Crypto.PasswordStore
import System.Environment

main = do
    args <- getArgs
    putStrLn (makePassword (head args) 12)

我收到以下错误:

testmakePassword.hs:8:19:
    Couldn't match expected type `String'
            with actual type `IO Data.ByteString.Internal.ByteString'
    In the return type of a call of `makePassword'
    In the first argument of `putStrLn', namely
      `(makePassword (head args) 12)'
    In a stmt of a 'do' block: putStrLn (makePassword (head args) 12)

我一直在使用以下链接作为参考,但我现在只是尝试错误,但无济于事。http://hackage.haskell.org/packages/archive/bytestring/0.9.0.4/doc/html/Data-ByteString-Internal.html http://hackage.haskell.org/packages/archive/bytestring/0.9.0.4/doc/html/Data-ByteString-Internal.html http://hackage.haskell.org/packages/archive/pwstore-purehaskell/2.1/doc/html/Crypto-PasswordStore.html http://hackage.haskell.org/packages/archive/pwstore-purehaskell/2.1/doc/html/Crypto-PasswordStore.html


您尚未导入 ByteString,因此它尝试使用 putStrLn 的 String 版本。 我已经提供了toBS为了String->ByteString转换。

Try

import Crypto.PasswordStore
import System.Environment
import qualified Data.ByteString.Char8 as B

toBS = B.pack

main = do
    args <- getArgs
    makePassword (toBS (head args)) 12 >>= B.putStrLn
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 StrLn 放入 Data.ByteString.Internal.ByteString? 的相关文章

随机推荐

  • 如何使用 C# 和 OneNote 互操作性写入 OneNote 2013 页面

    我看过很多关于此的文章 但所有这些文章要么不完整 要么没有回答我的问题 使用C 和 OneNote Interop 我想简单地将文本写入现有的 OneNote 2013 页面 目前我有一个 OneNote 笔记本 其中一个部分标题为 Sam
  • Django,使用ManyToMany将初始数据设置为表单集

    我需要将初始数据设置为formset with ManyToMany field 通常我会这样做no我的 fomset 形式的 ManyToMany 字段 PersonFormSet forms formsets formset facto
  • 多个声明和定义

    内容X c int i main fun 内容Y c int i fun 为什么这两个文件编译没有错误 使用海湾合作委员会 但如果我使用int i 10 它打印多重定义错误 您可能对这个问题及其答案感兴趣 关键词 暂定定义 C99 中的暂定
  • Linq Time(7) 和时间跨度映射

    我正在尝试将一条记录插入到我的表中 名为Test 我正在使用 LINQ 技术 问题是我有一个time我的表中的列类型为Time 7 但是当我尝试将数据插入表时出现此错误 Operand type clash bigint is incomp
  • 在 JavaDoc 中使用 Maven 属性

    是否可以使用 Maven Javadoc 插件扩展 javadoc 上的 Maven 属性范围 例如 My Awesome Class version project version 我想你可以这样尝试 这是两步过程 首先是将pom属性加载
  • Hive 来自 JSON 错误

    我无法以某种方式将此 json 放入配置单元表中 要么变成所有空数据 要么无法被选择 我只需要与我的 DDL 相同的字段 如果它在其中结构化 我想让它作为字符串而不是尝试解析它 唯一一个几乎只能通过以下方式实现 hive hcatalog
  • 即使 Xms = Xmx,G1GC 也会将内存释放给操作系统吗?

    阅读了一些答案后 例如this https stackoverflow com a 30464183 1432247 and JEP 346 https openjdk java net jeps 346 我已经意识到 G1 确实将内存释放
  • 可以在 iOS 中处理您自己的 http URL 方案吗?

    iOS 上的 iTunes App Store 和 YouTube 明确注册了 http URL 方案来打开其应用程序 任何人都可以做到这一点 而不仅仅是您自己的协议吗 我想这样做的原因是我正在为一个节日开发一个应用程序 我想 拦截 网站上
  • 如何以编程方式修改 Firebase 中的安全规则?

    Firebase 文档中的示例假设手动更新 Firebase 安全规则 如何以编程方式修改安全规则以支持现实世界的协作应用程序 在我正在考虑的用例中 要求用户能够邀请其他用户协作 共享所选数据 并能够授予 撤销对协作者的访问权限 如何使用
  • 什么是 .sln.ide 文件?

    我有一个 Visual Studio 2012 解决方案 Foobar sln 它包含一个类库项目和一个单元测试项目 几天前我注意到一个新文件 Foobar sln ide graph Foobar sln ide 内容
  • 如何使用react.js中的WHERE查询计算Firebase Firestore中集合中的文档数量

    我想要获取我的 Firebase Firestore 集合中的用户总数 我可以通过编写以下代码轻松获得它 const totalUsers setTotalUsers useState 0 const newUsers setNewUser
  • 为什么 Promise 构造函数需要一个在完成时调用“resolve”的函数,但“then”则不需要——它返回一个值?

    当我投入学习的时候Promises 我的理解停止在以下问题上 我没有找到讨论该问题 我发现的只是对Promise构造函数 以及Promise then 功能 但不是比较其设计模式的讨论 1 The Promise构造函数 来自 MDN 文档
  • Twine 上传类型错误:预期字符串或类似字节的对象

    当您尝试上传包时 有人遇到过这样的错误吗 twine upload dist Uploading distributions to https upload pypi org legacy Enter your username MyUse
  • AliasMatch 和 RegEx

    我正在开发服务器上使用集中式 CMS 该 CMS 位于 var www central cms 该网站 我有很多网站 可以通过以下网址访问 http web localdomain dev site1 如何访问 cms 只需输入以下网址 h
  • 如何在 JPA 下解锁一个实体

    all 我正在使用纯 JPA 编写一个程序 其提供程序是 hibernate 底层数据库是 Azure SQL DB 该程序将在分布式环境下运行 它的许多副本将运行在不同的服务器上 我需要执行类似的程序 例如 1 锁定指定的学生实体 2 检
  • 我可以从 WindowsPrincipal 获取 Active Directory 属性吗?

    我想获取当前登录用户的员工 ID 这在某些 Net 类中是否很容易获得 或者我是否需要进行某种 LDAP 查询 欢迎任何提示 更简单 使用新的 NET 3 5System DirectoryServices AccountManagemen
  • 接收 Android Google Play 音乐广播两次

    我希望你今天过得愉快 让我们进入正题 在我的清单文件中 我添加了一个像这样的接收器
  • 为什么在定义结构时使用不同的标识符?

    考虑这段代码 typedef struct Node Node struct Node struct Node node or this typedef struct Node struct Node node Node 有什么理由不将它们
  • netcdf4 提取经纬度子集

    我想提取一个相当大的 netcdf 文件的空间子集 从循环遍历 netcdf 文件并运行计算 Python 或 R https stackoverflow com questions 18665078 loop through netcdf
  • 如何将 StrLn 放入 Data.ByteString.Internal.ByteString?

    我正在学习 Haskell 并决定尝试编写一些小型测试程序来习惯 Haskell 代码和使用模块 目前 我正在尝试使用第一个参数来使用 Cypto PasswordStore 创建密码哈希 为了测试我的程序 我尝试从第一个参数创建一个散列