在 clojure 中读取文件并忽略第一行?

2024-02-23

使用代码来自这个答案 https://stackoverflow.com/a/7757674/1212338, 我有

(defn repeat-image [n string]
  (println (apply str (repeat n string))))

(defn tile-image-across [x filename]
  (with-open [rdr (reader filename)]
    (doseq [line (line-seq rdr)]
      (repeat-image x line))))

...水平平铺 ASCII 图像。现在,我如何才能“忽略”第一行?我这样做的原因是每个图像都有坐标(例如“20 63”)作为第一行,而我不需要该行。我尝试了一些方法(保留索引、模式匹配),但我的方法感觉很做作。


假设您想跳过文件的第一行并像在中那样处理剩余的行tile-image-across,你可以简单地替换(line-seq rdr) with

(next (line-seq rdr))

事实上,您可能应该考虑选择相关行和处理:

;; rename repeat-image to repeat-line

(defn read-image [rdr]
  (next (line-seq rdr)))

(defn repeat-image! [n lines]
  (doseq [line lines]
    (repeat-line n line)))

内部使用with-open:

(with-open [rdr ...]
  (repeat-image! (read-image rdr)))

相反,如果您的文件包含多个图像并且您需要跳过每个图像的第一行,那么最好的方法是编写一个函数将行序列划分为图像序列(如何完成取决于图像的格式)你的文件),然后将其映射到(line-seq rdr) and (map next ...))结果:

(->> (line-seq rdr)
     ;; should partition the above into a seq of seqs of lines, each
     ;; describing a single image:
     (partition-into-individual-image-descriptions)
     (map next))

注意。带着懒惰partition-into-individual-image-descriptions这将产生一个由惰性序列组成的惰性序列;你需要先吃掉它们with-open关闭阅读器。

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

在 clojure 中读取文件并忽略第一行? 的相关文章

  • Lisp / Clojure:编写函数生成宏是个好主意吗?

    这个问题 https stackoverflow com q 7852351 346587要求创建一个 Clojure 宏来生成多个函数 我们找到了一种方法来做到这一点 但仍被 这是一个好主意吗 的问题所困扰 我的第一反应是并不真地 有两个
  • 用于图像中文本检测的霍夫变换算法[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 霍夫变换算法是用于文本行检测和边缘检测的算法之一 霍夫变换算法可以用于检测图像中的文本吗 这道题在java中的流程或者实现应该是怎样的
  • 在 R 中匹配多个日期值

    我有以下数据框 DF 描述在特定日期从事项目的人员 ID ProjectName StartDate 1 Health 3 1 06 18 20 2 Education 2 1 07 15 30 1 Education 5 3 09 9 0
  • 使用 jQuery 查找文本字符串?

    假设某个网页有一个字符串 例如我想查找 我是一个简单的字符串 我将如何使用 JQuery 来解决这个问题 jQuery 有 contains 方法 这是给您的一个片段 上面的选择器选择包含目标字符串的任何元素 Foundin 将是一个包含任
  • 无法使用 Leiningen 构建 jar

    我正在尝试使用 Intellij 的 Cursive 中的 Leiningen 插件从我的基本 Clojure 项目中制作一个独立的 jar 为了创建项目 我刚刚创建了 project clj 文件 将其打开 Cursive 提出将其导入为
  • 为什么类型系统拒绝我看似有效的程序?

    注意这个程序 class Convert a b where convert a gt b data A A deriving Show data B B deriving Show data C C deriving Show data
  • 如何在 React Native ListView 中将项目居中?

    我试图在选择一个项目时将其置于水平列表视图的中心 我当前的策略是首先测量项目并滚动到视图中引用项目的 x 坐标 目前 每当我按下某个项目时ListView滚动到最后x 538 有没有更简单的方法来实现这一点 同时保持代码无状态 功能 con
  • 获取选定的文本位置

    目前 我正在浏览器中获取选定的文本 执行以下操作 window getSelection 现在 当按下自定义键时 我需要在该文本上方显示一个工具提示 请注意 鼠标不能再位于文本上方 因此为了做到这一点 我需要该所选文本的绝对位置 有没有办法
  • D 中的特征可以用于类型类吗?

    我是 D 新手 我正在寻找一种使用类似 Haskell 的类型类进行编程的好方法 例如D 中的函子 幺半群等 Tango 或 Phobos 中是否实现了类似的功能 我听说过可以对某些属性进行编译时类型检查的特征 它们可以用于类型类吗 我尝试
  • 为从 nginx 反向代理转发的请求添加唯一 id

    我们运行 nginx 作为反向代理 将请求转发到运行 Compojure 的 Clojure 应用程序 Compojure 是一个封装 Jetty 的库 为我们的应用程序提供服务 Web 请求的能力 目前 我们捕获 nginx 和 Cloj
  • 将本地文本文件读取到 JavaScript 数组中[重复]

    这个问题在这里已经有答案了 我的 JavaScript 文件位于同一文件夹中 有一个文本文件 这两个文件都存储在我的本地计算机上 txt 文件每一行只有一个单词 如下所示 red green blue black 我想尽可能高效地读取每一行
  • 阻塞事件循环

    我正在通过 Nodeschool 参加 函数式 Javascript 研讨会 其中一项练习的标题是 阻止事件循环 我很难理解它 通过过去的练习 我确保真正尝试理解解决方案 这样如果我必须重做问题 我就会理解如何解决它 而不是第一次就破解它
  • Clojure/Java:用于声音频谱分析的 Java 库? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个可以接受大量音频数据并返回给定频带内随时间变化的平均幅度的库 我已经在 comp dsp
  • 是否可以有效地计算 lambda 演算项?

    我最近用 lambda 演算编写了很多程序 我希望能够实时运行其中一些程序 然而 尽管趋势函数范式基于 lambda 演算和 B 约简规则 但我找不到一个不是玩具 不以效率为目的的评估器 函数式语言应该很快 但我所知道的那些语言实际上并不提
  • 好的 Clojure 代码示例? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在第一次查看 Clojure 我发现查看 Clojure 核心库的 doc xxx 和 sourc
  • 使用参与者模型进行基于时间的模拟

    我们有一个单线程应用程序 可以模拟数十万个对象随着时间的推移与共享内存模型的交互 显然 它无法在多 CPU 硬件上进行扩展 在阅读了一些有关基于代理的建模和函数式编程 参与者模型的内容后 我正在考虑使用消息传递范例进行重写 这个想法非常简单
  • 从命令行将 clojure 源代码编译为类(AOT)(不使用 lein)

    我正在尝试将 clojure 源代码编译成类文件 并仅使用命令行运行它 没有 lein 也没有 可能 回复 我有 core cljsrc hello目录 src hello core clj 这是源代码 ns hello core defn
  • 从 JVM 线程本地空间卸载 Clojure 变量

    我正在 Clojure 中为 BaseX 编写一个插件 通过 lein uberjar 构建 并包含 Clojure 解释器 在大多数情况下 这效果很好 然而 当通过 BaseX HTTP 实例运行时 评估在 Jetty 的线程池内进行 而
  • 使用 Powershell 按列拆分 csv 文件

    我是 powershell 的新手 但这看起来是完成此任务的最佳工具 有一个如下所示的 csv 文件 Date mary1 mary2 maryr3 mary4 9 01 2011 1 00 1 39 3 43 3 29 1 83 9 01
  • 当包含 textColor 的样式应用于 textView 的 textAppearance 时,文本的颜色不会改变

    我想减少 xml 代码的重复 所以我为textView中的文本做了一些标准样式 我们可以在textView中的 style 属性和 android textAppearance 属性下应用样式 以下是我为文本外观制作的一些样式

随机推荐

  • jQuery 使用 :not 从 div 中选择文本

    我做了一个小提琴 http jsfiddle net hAzJq http jsfiddle net hAzJq 如何选择 div 内的文本而不是 span 内的文本 alert div not span text Use contents
  • 从ansible中注册的变量中检索键的值

    我正在编写各种剧本 用于在 AWS 中配置用户 组 策略等 目前 我正在尝试编写一个任务 从给定的 AWS IAM 账户中删除所有访问密钥 要使用 ansible 中的 iam 模块正确执行此操作 您必须指定要禁用的 AWS 访问密钥 该脚
  • jquery 只捕获第一个按键?

    我有这个代码 j regfname keypress function alert Handler for keypress called 并且只想执行一次 或仅在第一次按键时执行 最理想的方法是什么 您可以使用 jQueryone htt
  • 快速将字符串转换为 CLLocationCooperative2D

    使用 Firebase 作为后端 我有一系列纬度和经度坐标字符串 如何将它们转换为 CLLocationCooperative2D 以便我可以将它们用于注释 这是每次更新时从 Firebase 获取信息的代码 var UpdateRef F
  • Cucumber + Capybara + Selenium:选择文本

    我正在对文本编辑器进行更改 并且需要能够选择文本以使用 JavaScript 对其进行操作 如何使用 Cucumber Capybara 和 Selenium 选择文本 我发现了另一个 stackoverflow 问题 讨论如何使用 Jav
  • 如何将自定义 python 与现有包一起使用 - nix 派生?

    我定义了一个带有未合并补丁的自定义 nix cpython 派生 如果我将其指定为目标 nix shell 就会得到我期望的版本 pkgs import
  • 从 R 控制台窗口相当于 wget

    你好 我想知道 Windows 中 wget 的等价物是什么 我目前在 R 中有一个函数 其中包含命令 system wget www random url com file 从运行 R 的 mac unix 机器上从互联网下载文件 Win
  • VSCode:用于修改用户设置的键盘快捷键

    我喜欢 CodeLens 的想法 它是 VSCode 的插件 可以告诉您所有函数和变量的引用计数 然而 当我扫描代码时 为包含 X 引用 行而添加的额外垂直边距让我很恼火 以至于我将其禁用 这很遗憾 因为这是有用的信息 我希望能够通过键盘快
  • 如何让 docker run 继承 ulimits

    通过 docker 运行命令似乎不符合我当前的配置ulimits ulimit t 5 sudo bash c ulimit t 5 sudo docker run rm debian wheezy bash c ulimit t unli
  • 以编程方式禁用在 Intranet 中运行并呈现 .xhtml 页面的站点的 IE-8 兼容模式

    我有一个 JSF 应用程序 其 xhtml 页面在 Intranet 中运行 我尝试删除默认元标记并添加元标记 但没有用 这个解决方案是否仅适用于纯 html 页面 或者是否有任何其他方法可以使用它以编程方式禁用兼容模式 如果您想阻止所有
  • 如何获取Docker桌面虚拟机的IP地址?

    我在一个团队中 我们中的一些人使用 docker 工具箱 一些用户使用 docker 桌面 我们正在编写一个需要与开发中的 docker 容器进行通信的应用程序 在 docker 工具箱上 我知道 docker machine env 命令
  • 上传 Base64 图像 Facebook Graph API

    我正在尝试使用 Node js 将 Base64 图像上传到 FaceBook 页面 如果我从文件系统读取文件 即使用 fs readFileSync c a jpg 我已经设法使上传能够处理所有多部分数据等 但是 如果我使用 base64
  • 为什么 ("foo" === new String("foo")) 在 JavaScript 中计算结果为 false?

    我本来打算在比较字符串值时一直使用 三重等于 严格比较 但现在我发现 foo new String foo 是错误的 与此相同 var f foo g new String foo f g false 当然 f g true 那么是否建议始
  • 如何在一个单元格中包含 python 代码和 markdown

    jupyter笔记本可以支持markdown单元格或verse Visa中的内联python代码 关节炎计算 或绘制图形 在一个单元格中同时包含 Python 代码和 Markdown from IPython display import
  • angularjs / 渲染内联或使用 ng-include 之间的性能差异

    我可以使用 ng include 将部分包含在角度视图中 或者我可以使用服务器端部分在服务器上执行此操作 我正在考虑使用服务器端部分而不是角度部分 然后使用 ng include 使用脚本标记 因为我在某处读到角度部分创建新范围 这可能会损
  • 从 C 源代码调用汇编例程

    我有这个简单的 C 源代码 include
  • 将包含多个工作表的 xlsx 文件转换为多个 xlsx 文件

    我有一个包含多个工作表的 xlsx 文件 我想将所有工作表拆分为不同的 xlsx 文件 例如 我有一个文件 matt xlsx 它有 5 张纸 名称分别为 A B C D E 我想将它们分成 5 个文件 命名为 a xlsx b xlsx
  • 请推荐一个好的 OpenStreetMap 组件 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Python Scipy 用于 2D 外推样条函数?

    我想为二维矩阵编写一个外推样条函数 我现在拥有的是一维数组的外推样条函数 如下所示 scipy interpolate InterpolatedUnivariateSpline http docs scipy org doc scipy 0
  • 在 clojure 中读取文件并忽略第一行?

    使用代码来自这个答案 https stackoverflow com a 7757674 1212338 我有 defn repeat image n string println apply str repeat n string def