如何根据 GHCi 中的记录制作镜头

2023-12-31

我想玩一下Lens图书馆一点。我已将其加载到 GHCi 中并创建了带有适当下划线的记录数据类型:

> data Foo a = Foo {_arg1 :: Int, _arg2 :: [a]}

我想制作镜片Foo使用makeLenses模板。我想这样做,而不需要阅读整套模板-Haskell 文档 http://www.haskell.org/haskellwiki/Template_Haskell.

我可以在 GHCi 提示符下输入什么咒语才能使其发挥作用?


在 GHCi 7.8.3 中测试:

:set -XTemplateHaskell
:m +Control.Lens
:{
data AST = AInt  { _aid :: Int, _ival :: Int }
         | AChar { _aid :: Int, _cval :: Char }
         deriving (Show)
makeLenses ''AST
:}

(我相信:{ ... :}块是必要的makeLenses上班)。

我们来简单检查一下:

λ >> AChar 100 'f' ^. aid
100
λ >> AChar 100 'f' ^? cval
Just 'f'
λ >> AInt 101 0 ^? cval
Nothing
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何根据 GHCi 中的记录制作镜头 的相关文章

  • Haskell,optparse-generic 的未命名命令行参数

    我在用着optparse 通用 https hackage haskell org package optparse generic解析名为的程序的命令行参数example 我有一个带有命名字段的数据类型 记录语法 例如 data Exam
  • 将系统命令的结果绑定到 Haskell 中的变量

    如何在 Haskell 中运行系统命令and将其结果 即标准输出 绑定到变量 在伪 Haskell 中 我正在寻找类似以下内容的内容 import System Process main do output lt callCommand e
  • 使用 nix 在 Mac OS X 上由于“架构 x86_64 的未定义符号”而导致“堆栈构建”失败

    首先是错误消息 stack build Linking Users yuzhao stack setup exe cache x86 64 osx tmp Cabal simple mPHDZzAJ 2 2 0 1 ghc 8 4 4 cl
  • 如何让 Show 显示函数名称?

    作为一个让我熟悉 Haskell 的简单练习 在 Youtube 上闲逛并偶然进入美国倒计时游戏节目之后 我想为数字游戏制作一个求解器 你得到 6 个数字 需要将它们与 为了得到给定的结果 到目前为止我所得到的是非常脑死亡的 let ope
  • 如何从 haskell 中的 IOError 获取 errno?

    我在 haskell 平台上 GHC 6 12 1 作为 apt get 安装在 Debian Squeeze 上 鉴于我需要在与最初引发它的线程不同的线程上使用它 如何从 IOError 中获取底层 errno 我需要这个的原因是因为我正
  • 在 Haskell 中计算移动平均线

    我正在学习 Haskell 所以我尝试实现移动平均函数 这是我的代码 mAverage Int gt Int gt Float mAverage x a fromIntegral k fromIntegral x k lt rawAvera
  • 在 Haskell 中增长数组

    我想在 Haskell 中实现以下 命令式 算法 给定一个序列对 e0 s0 e1 s1 e2 s2 en sn 其中 e 和 s 部分不一定是自然数不同的是 在每个时间步都会随机选择该序列的一个元素 例如 ei si 并根据 ei si
  • 这个记忆的斐波那契函数是如何工作的?

    在我正在做的函数式编程课程的当前练习作业中 我们必须制作给定函数的记忆版本 为了解释记忆化 给出以下示例 fiblist fibm x x lt 0 fibm 0 0 fibm 1 1 fibm n fiblist n 1 fiblist
  • 如何手动推断表达式的类型

    给定 Haskell 函数 head filter fst 现在的问题是如何手动 手动 找到类型 如果我让 Haskell 告诉我我得到的类型 head filter fst Bool b gt Bool b 但我想了解仅使用所用函数的签名
  • Haskell scala 互操作性

    我是 Scala 初学者 来自面向对象范式 在了解 Scala 的函数式编程部分时 我被引导到 Haskell 纯函数式编程语言 探索 SO 问题答案 我发现 Java Haskell 具有互操作性 我很想知道 Scala Haskell
  • 纯函数怎么能做IO呢?

    我最近了解到莫纳德随机数 http hackage haskell org package MonadRandom 0 1 13 docs Control Monad Random Class html t 3aMonadRandom图书馆
  • 规范化且不可变的数据模型

    Haskell如何解决 规范化不可变数据结构 问题 例如 让我们考虑一个表示前女友 男友的数据结构 data Man Man name String exes Woman data Woman Woman name String exes
  • “Eta减少”并不总是在Haskell中举行?

    我发现我可以说 LANGUAGE RankNTypes f1 forall b b gt b gt forall c c gt c f1 f id f HLint 告诉我我可以在这里做 Eta 减少 但是 f2 forall b b gt
  • Haskell 中列表列表的笛卡尔积

    给定一个长度列表的列表x所有子列表的长度都相同y 输出y x长度列表x包含每个子列表中的一项 例子 x 3 y 2 1 2 3 4 5 6 Output 2 3 8不同的输出 1 3 5 1 4 5 1 3 6 1 4 6 2 3 5 2
  • Haskell 中的中缀运算符优先级

    对于以下 Haskell 表达式 返回 a gt gt f 应该读作 返回a gt gt f or 返回 a gt gt f 这里的相关规则是什么 规则始终是函数应用程序的优先级高于任何运算符 因此 return a gt gt f 被解析
  • 如何在 Haskell 中制作打勾游戏的图案?

    实现有 2 个参数的函数 ticktick 第一个参数是自然数元组 定义游戏场地的行数和列数 第二个列表包含由玩家 x 和玩家 o 轮流玩的坐标给出的井字游戏比赛的记录 打印游戏的实际状态 其中游戏区域将由字符 和 界定 空方块 以及字符
  • 带有 RankNTypes 扩展的奇怪类型推断

    我正在尝试在 Haskell 中尝试 System F 类型 并通过以下方式实现了自然数的 Church 编码type 当加载这段代码时 OPTIONS GHC Wall LANGUAGE RankNTypes type CNat fora
  • 检查对以下内容的理解:“变量”与“变量” “价值”、“功能”与“抽象”

    这个问题是后续问题this one https stackoverflow com questions 25327705 is function a sort of variable 25329157 25329157在学习 Haskell
  • 不同编程语言中的浮点数学

    我知道浮点数学充其量可能是丑陋的 但我想知道是否有人可以解释以下怪癖 在大多数编程语言中 我测试了 0 4 到 0 2 的加法会产生轻微的错误 而 0 4 0 1 0 1 则不会产生错误 两者计算不平等的原因是什么 在各自的编程语言中可以采
  • 管道:多个流消费者

    我编写了一个程序来计算语料库中 NGram 的频率 我已经有一个函数 它消耗一串令牌并生成一个订单的 NGram ngram Monad m gt Int gt Conduit t m t trigrams ngram 3 countFre

随机推荐

  • Gitlab CI 不执行 npm 脚本

    我尝试制作一个在 gitlab runner 上运行的 CI 脚本 我想要的很简单 首先应执行 npm install 命令来获取所有必需的 npm 包 之后npm test and npm run build应该被执行 The gitbl
  • Laravel 查询生成器:选择除少数字段之外的所有字段

    使用 Laravel 查询构建器 可以轻松选择字段或使用别名字段 gt select 如何选择除少数字段之外的所有字段 例如 我希望永远不归还id我的记录回到前端 http laravel com docs 4 2 eloquent htt
  • GDB 跳过了我的代码!

    所以 我定义了一个类 DataLoggingSystemStateReceiver DataLoggingSystemStateReceiver initializer list stuff other functions here 主要是
  • 我应该将 HTML 存储为 nvarchar(MAX) 还是 ntext?

    我不知道如果我选择 nvarchar MAX 是否有字符数限制 而且我也不确定我需要多少个字符 这里使用的标准数据类型是什么 我正在使用 SQL Server 2008 R2 The ntext类型已被弃用 如下所示text and ima
  • Selenium IDE 找不到元素

    我正在尝试在 Selenium IDE 中运行录制的测试用例 问题是 当我尝试执行整个测试用例时 Selenium 停止它 没有在页面上找到元素 问题是我可以执行测试用例的单个步骤 我认为 Selenium 会在加载新页面之前尝试查找元素
  • 应用 CSS text-shadow 时是否可以将多个元素视为一个文本?

    应用 CSS 时text shadow对于文本内容部分包裹在子元素中的元素 包裹文本后面的字母将在包裹元素上投射阴影 如以下示例所示 font family sans serif font weight 900 shadow color f
  • 如何正确停止定时器?

    var timer time Timer func A timer Stop cancel old timer go B new timer func B timer time NewTimer 100 time Millisecond s
  • 检查 ASP.NET Core Identity 中具有 Authorize 属性的多个策略之一

    我在 ASP NET Core 应用程序中设置了标准身份验证系统 用户 角色 RoleClaims 充当权限 在 Startup cs 中 我为每个角色和每个权限创建一个策略 假设这将使我的视图具有充分的灵活性 能够说我希望此按钮显示用户是
  • 生成的 WSDL 中的空肥皂操作

    我正在尝试使用 JAX WS 从我的 Java 代码生成 WSDL 一切似乎都工作正常 除了我在 WSDL 中的操作时 soapAction 仍然为空 这是我的代码 WebService public class MyClass publi
  • maven antrun ssh 或 scp 隐藏输出

    我想使用 ant 在 mvn 中运行来运行 ssh 和 scp 命令 ssh 和 scp 命令正确运行 并且在下一阶段中声明的插件 运行 但是 ssh scp 之后的所有命令的输出 不会写入任何输出 问题是什么 这是我的 pom xml
  • 特定活动开放后销毁所有先前的活动[重复]

    这个问题在这里已经有答案了 这是场景 Activity A gt Activity B gt Activity C gt Activity D 我想在之后销毁 Activity A B 和 CActivity D已推出 有什么想法吗 Int
  • python 和 ip 范围?

    例如 我有一个文件 城市和 IP 地址 City1 31 25 87 0 31 25 87 15 City2 31 47 224 0 31 47 255 255 如何通过ip地址知道城市名称 http www icir org robin
  • 如何解密V FoxPro加密的字符串

    我有一个用 Visual Fox Pro 构建的程序 它可以在数据库中读取和写入信息 但该信息是加密的 我有源代码 所以我有钥匙 加密和解密的密钥相同 用于加密 解密 但我无法获得用于加密 解密的算法 我需要这个来使用 C 创建一个新程序
  • 如果盖子关闭,如何以编程方式从睡眠中唤醒?

    我想以编程方式将系统从睡眠状态唤醒 有什么办法可以做到这一点吗 我已阅读以下链接 http developer apple com mac library qa qa2004 qa1340 html http developer apple
  • 通过python脚本调整excel中单元格的宽度和高度(以毫米/厘米为单位)

    我试图寻找它 但没有找到 是否可以使用 openpyxl 或 xlwt 模块以 mm 或 cm 尺寸调整 excel 中单元格的宽度和高度 如果是 那么有人可以指出我的脚本命令吗 多谢 使用 Openpyxl 设置列宽 setting wi
  • 如何在 nHibernate 中部分投影具有多个字段的子对象

    我有以下 nHibernate 查询 它根据课程 ID 选择课程 然后返回选定的字段对于初始获取的课程对象 查询执行没有问题 MatchMode option CourseItem courseAlias null TeacherItem
  • 如何读取txt文件C++并将它们分成几列

    这是我第一次用 c Visual studio 2010 编写代码 我有我想要实现的逻辑 但我无法将其写入代码 查看了许多样品 但没有发现任何结果 基本上我有一个制表符分隔的 txt 文件 我想读取它并将数据放入字符串 字符串数组中 问题是
  • SpringBoot - BeanDefinitionOverrideException:无效的 bean 定义

    我正在尝试使用 Spring Boot 在本地设置 DynamoDB 最初 我的设置正常运行 并且能够通过存储库写入 保存到 DynamoDB 从那时起 我添加了更多类来构建我的应用程序 现在 当我尝试启动我的应用程序时 出现以下异常 or
  • 我已经创建了一个带有套接字的 Java 服务器,那么如何打印到所有套接字?

    我已经尝试了一段时间了 我希望多个客户端同时接收多个输入 有一个问题 如果一个客户端说 print2all Hi 我希望服务器向所有客户端打印 Hi 我知道如何处理它来打印它 只是打印到所有客户端就是问题所在 这是我到目前为止所拥有的 Se
  • 如何根据 GHCi 中的记录制作镜头

    我想玩一下Lens图书馆一点 我已将其加载到 GHCi 中并创建了带有适当下划线的记录数据类型 gt data Foo a Foo arg1 Int arg2 a 我想制作镜片Foo使用makeLenses模板 我想这样做 而不需要阅读整套