如何更改 Haskell 矩阵中的某个值?

2023-12-08

我对 Haskell 很陌生,还没有完全理解它是如何工作的。 在下面的方法中,我想更改矩阵中的某个值或在 Haskell 中实现的列表列表。

setEntry :: [[Int]] -> Int -> Int -> Int -> [[Int]]
setEntry x i j aij = 

这是我到目前为止的方法。我知道这不多,但我真的不知道如何继续。

计划是给它一个矩阵,然后将第i行第j列中可以找到的值更改为aij。

我将非常感谢任何形式的帮助。

已经预先感谢您了!


首先请注意,实际上没有必要将其具体化Int-值矩阵:签名也可以是

setMatEntry :: [[a]] -> Int -> Int -> a -> [[a]]

另外,不仅仅是setting它,你也可以modify这是。添加的新值可能取决于旧值,对吗?

modifyMatEntry :: [[a]] -> Int -> Int -> (a -> a) -> [[a]]

这样你就可以轻松地将原始版本实现为

setMatEntry x i j aij = modifyMatEntry x i j (const aij)

或更短:

setMatEntry x i j = modifyMatEntry x i j . const

接近它的好处是modifier不仅仅是一个要设置的常量,它可以组成任何深度的嵌套列表。 IE。没有理由立即进入矩阵,你不妨先解决

modifyListEntry :: [a] -> Int -> (a -> a) -> [a]

and then

modifyMatEntry x i j f = modifyListEntry x i
                          (\r -> modifyListEntry r j f)

这里,外modifyListEntry[a] -> [a]使用内部函数modifyListEntrya -> a功能。

顺便说一句,如果我们改变参数的顺序,这实际上可以变得更短:我推荐这个顺序

modifyListEntry :: Int -> (a->a) -> [a] -> [a]
modifyMatEntry :: Int -> Int -> (a->a) -> [[a]] -> [[a]]

所以,现在唯一不完全微不足道的是modifyListEntry。但一般来说,如何处理列表是很清楚的——你将拥有以下形式的子句

modifyListEntry i f [] = _
modifyListEntry i f (x:xs) = _

...或者也可能模式匹配其他参数的具体值。那么你就需要使用递归。尝试自己弄清楚这一点。

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

如何更改 Haskell 矩阵中的某个值? 的相关文章

  • 如何创建多个列表? [复制]

    这个问题在这里已经有答案了 我正在尝试创建多个列表 如下所示 l1 l2 ln 有什么办法可以做到这一点吗 你可以做的是使用字典 gt gt gt obj gt gt gt for i in range 1 21 obj l str i g
  • Android ListView 中的 JSONArray

    urlHi 我有这段代码 可以从 php 页面接收数据 我想将该数据放入列表视图中 我收到该数据 并且通过 system out println 看到了该数据 但列表视图中有白行 代码 public class Utenti extends
  • 查找列表中元素的索引

    我需要获取方案列表中元素的索引 例如 2 2 3 4 5 4 2 3 4 5 2 有人可以帮忙吗 像这样的东西 define list index lambda e lst if null lst 1 if eq car lst e 0 i
  • List.Enumerator IEnumerator.Reset() 方法实现

    尽管事实如此 IEnumerator Reset永远不应该使用方法 https stackoverflow com a 5968973 1163867我发现方法实现的奇怪行为List
  • 根据列表中的关键字过滤数据框中的文本

    我有一个列表列表 列表的每个子列表都包含用于过滤数据框中文本的关键字 keywords tarifa mantenimiento mensual tasa anual seguro bancaria seguro generales mi
  • 无法让 wxHaskell 在 Mac 上从 ghci 工作

    我正在尝试跑步一个例子 http www haskell org haskellwiki WxHaskell Quick start Hello world in wxHaskell using EnableGUI function htt
  • 免费在线网络开发工具列表[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 What free onlineWeb 开发人员有哪些可用且 应该了解 的工具 为了设定列表的精神 这里有一些例子 谷歌代码游乐场 htt
  • 优化计算 200 万以下所有素数总和的 Haskell 代码

    欧拉计划中的问题 10 我在那里看到了一些讨论 但仅限于 C 我用下面的代码来计算 print sum sieve 2 2000000 where sieve sieve x xs x sieve filter 0 mod x xs 需要很
  • 当 Haskell 持久库中需要“Key”时,如何通过“Int”获取实体?

    我将持久性 orm 与 scotty Web 框架一起使用 我想通过 id 从 db 获取值 这些是来自 GET 请求的 有 get 函数接受 Key Entity 变量并返回 Maybe Entity 我使用以下代码从数据库获取值 k l
  • 性能问题:StringCollection 与 List

    我想知道什么时候应该使用列表当我应该使用字符串集合 假设我必须处理大量字符串 例如 10mb 的文本文件 我知道列表提供比字符串集合 但有时我会找到列表slow例如 当告诉 Gridview 它的数据源是 List 时 那么有人知道这些集合
  • 如何创建多维列表

    我想初始化一个多维列表 基本上 我想要一个 10x10 网格 一个包含 10 个列表的列表 每个列表包含 10 个项目 每个列表值应初始化为整数 0 简单地做到这一点的明显方法是 myList 0 10 10不起作用 因为它会生成一个包含
  • Haskell 中的随机枢轴快速排序

    是否有可能在 Haskell 中实现快速排序 使用 RANDOM PIVOT 但仍然有一个简单的Ord a gt a gt a 签名 我开始了解 Monad 目前 我将 monad 解释为某种 命令模式 这对于 IO 非常有用 所以 我知道
  • Collectors.toList() 返回什么样的 List

    我在读Lambda 的现状 图书馆版 http cr openjdk java net briangoetz lambda lambda libraries final html 并且我对一项声明感到惊讶 在该部分下Streams 有如下
  • 在python中接受用空格分隔的多个用户输入并将它们附加到列表中

    如何接受以空格分隔的多个用户输入 我不知道输入的数量 但我知道它们都是整数 以下是一些输入示例 13213 412 8143 12 312 1321 142 9421 9 29 319 我知道如果我事先知道输入的数量就可以做到这一点 但我在
  • 输入到列表并找到同一输入python的最长条纹

    我正在编写一个程序 其中用户将值输入到列表中 直到想要结束为止 该程序将告诉用户他们输入的最长连续数字 例如 如果用户输入 7 7 7 6 6 4 end 则会得到输出 您的最长连胜次数为 3 因为 7 已连续输入 3 次 到目前为止 我有
  • Apache PDFBox 旋转 PDImageXObject

    我正在使用 2 0 0 SNAPSHOT 我想将页面设置为横向并旋转我的图片 所以我已经做到了page setRotation 90 使用 PDFBox 和 AffineTransform 似乎存在错误 这段代码没有做任何我期望的事情 Af
  • intellij idea 中的项目组

    目前 至少从 IntelliJ Idea 14 开始 ide 会记住最后一组打开的项目 我们能否轻松地控制它并拥有可切换的项目集 组 这是打开项目的另一种方式 与模块不同 我希望某个插件已经具备该功能 但是是哪一个呢 截至2017年8月 I
  • 如何在原生 Swift 中实现以前称为 NSMutableOrderedSet 的可变有序集泛型类型?

    我正在尝试实现一个通用的可变有序集类型 它需要符合许多协议才能以与 Swift 中的数组和集合相同的方式运行 首先要实现泛型类型元素需要符合Hashable https developer apple com documentation s
  • 如何检查Python列表中是否存在第n个元素?

    我有一个 python 列表 x a b c 有 3 个元素 我想检查第四个元素是否存在而不收到错误消息 我该怎么做呢 您检查长度 len x gt 4 或者你抓住了IndexError例外 try value x 3 except Ind
  • 如何在 Haskell 中处理这个简单的 IO 异常

    全部处理 在下面的代码中 getDirectoryContents dir可能会失败 例如dir可能不存在 如何捕获这个并向用户抛出有意义的消息 我知道 IO 异常处理已经被问过很多次了 但我仍然找不到一个简单的方法来做到这一点 walk

随机推荐

  • iTextSharp 和 Xamarin

    我正在尝试在 Xamarin 应用程序中使用 iTextSharp dll 但无法编译 因为我收到了此错误 Error Exception while loading assemblies System IO FileNotFoundExc
  • ControlTemplate Storyboard颜色动画问题

    我对彩色动画有疑问 这是我的来源
  • 如何在给定视图空间深度值和 ndc xy 的情况下恢复视图空间位置

    我正在编写一个延迟着色器 并试图将我的 gbuffer 包装得更紧密 但是 我似乎无法正确计算给定视图空间深度的视图位置 depth gt gl ModelViewMatrix vec4 pos xyz 1 z where pos is t
  • Android 设备未使用 adb 显示

    我已经为此搜索了很长时间 我已经尝试了所有我能找到的技巧 我一直在同一台设备上调试几个月 将应用程序完美地部署在其他完全相同的设备上 但是由于上星期 我无法再连接到它 通过 USB 连接设备 我可以听到计算机的声音警告已连接的设备 并且我可
  • 快速获取图像的亮度/光度

    我正在 php 中工作 并逐像素地检查每个图像以获得每个图像的平均亮度 这将是 CPU 密集型的方式 我已经浏览了 GD 和 imagemagick 文档 但还没有找到返回图像平均亮度的方法 这可以在这些库中快速完成 还是在另一个可以通过
  • 如何在 Postman 中编写全局函数

    我需要帮助编写一个通用函数来跨请求集合使用 这将有助于构建框架 我尝试过使用以下格式 以下函数在第一个函数的 测试 选项卡中声明 postman setGlobalVariable function function function1 p
  • 服务 chromedriver 意外退出。状态代码为:1

    我在 Google Colab 中运行此代码 它工作正常 但突然在 chromedriver 中出现此错误 我是 python 网络抓取的新手 Error WebDriverException Traceback most recent c
  • 使用 solrfacet stats 时如何分页?

    我已经通过 solr 方面统计信息从 solr 选择了所有记录 但我无法对它们进行分页 如何通过 pageSize 和 pageNum 进行分页 使用 solrfacet stats 时不能分页 因为使用 solrfacet stats 会
  • Pandas:to_csv() 得到了意外的关键字参数

    当我尝试使用数据帧 to csv 函数中的某些参数时 它会抛出 TypeError 例如 TypeError to csv gets an Unexpected keywords argument doublequote df to csv
  • Powershell:在特定的当前同级元素后添加新的 XML 元素

    我有一个 xml 列表 我希望在其中添加一个新的子元素
  • 如何使用 SQLite 将值转入列?

    我做了一张桌子叫tbl用这个代码 CREATE TABLE tbl Year int Album varchar 255 Artist varchar 255 Label varchar 255 Genre varchar 255 id i
  • 从对象数组内的数组返回唯一的数组值

    我找不到类似的问题 我有点卡住了 我有以下 JSON 数组 Name element1 Attributes 1 2 Name element2 Attributes 1 3 Name element3 Attributes 我正在尝试创建
  • 重新构造复数因子向量,千位后用逗号分隔

    我想重新格式化一个因子向量 以便它包含的数字有千位分隔符 该向量包含整数和实数 对于值或顺序没有任何特定规则 Data 特别是 我正在使用向量vec类似于下面生成的 content lt c 0 100 0 100 0 100 0 100
  • PowerShell 包装器将管道输入定向到 Python 脚本

    我正在尝试编写一个小工具 让我可以将命令输出通过管道传输到剪贴板 我已读完multiple answers在 Stack Overflow 上 但它们对我不起作用 因为它们不包含管道 或者因为它们没有使用函数 或者它们只是抛出错误 或者也许
  • 在 bash 脚本中批量 mv 或重命名 - 附加日期作为后缀

    经过大量搜索和反复试验 我无法进行批量处理mv or rename在文件目录上 我想做的是移动或重命名目录中的所有文件 以便mv d or renamed 文件有 date Y d m 添加到原来的后缀 所有原始文件都有唯一的前缀 但要么
  • 如何在 Holoviews 中设置活动工具

    有时我的情节会被绘制pan工具活跃 有时他们用pan and wheel zoom积极的 我愿意强行wheel zoom在渲染时处于活动状态 有没有办法做到这一点 自从 Holoviews 1 11 0 发布以来 原来的答案已经过时了 Ho
  • CIFilter后图像旋转

    我正在将 CIFilter 应用于肖像图像 由于某种原因 它顺时针旋转了 90 度 我怎样才能解决这个问题 我的代码如下 var imgOrientation oImage imageOrientation var imgScale oIm
  • 以编程方式创建属性集和属性

    我正在使用以下链接中列出的代码 http www magentocommerce com wiki 5 modules and development catalog programmatically adding attributes a
  • 在 Google Spreadsheet API 中查找最后写入的行

    有什么方法可以找到您在 Java 的 google 电子表格中编写的最后一行吗 我尝试通过将一个变量保存在另一个文件中来做到这一点 并在每次进行另一次写入时更新该变量 还有其他办法吗 在 Google Spreadsheet API 中查找
  • 如何更改 Haskell 矩阵中的某个值?

    我对 Haskell 很陌生 还没有完全理解它是如何工作的 在下面的方法中 我想更改矩阵中的某个值或在 Haskell 中实现的列表列表 setEntry Int gt Int gt Int gt Int gt Int setEntry x