从字符串中删除每个第 n 个元素

2024-03-12

如何删除字符串中的每第 n 个元素?

我猜你会使用drop以某种方式发挥作用。

就像这样删除第一个 n,你怎么能改变它,只删除第 n 个,然后是后面的第 n 个,依此类推,而不是全部?

dropthem n xs = drop n xs

简单的。取 (n-1) 个元素,然后跳过 1 个,冲洗并重复。

dropEvery _ [] = []
dropEvery n xs = take (n-1) xs ++ dropEvery n (drop n xs)

或者为了效率而采用 showS 风格

dropEvery n xs = dropEvery' n xs $ []
    where dropEvery' n [] = id
          dropEvery' n xs = (take (n-1) xs ++) . dropEvery n (drop n xs)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从字符串中删除每个第 n 个元素 的相关文章

  • Haskell - 交替两个列表中的元素

    我正在尝试编写一个 haskell 函数 它接受两个整数列表并生成一个列表 其中包含从两个列表中交替获取的元素 我有这个功能 blend xs ys 一个例子 blend 1 2 3 4 5 6 应该返回 1 4 2 5 3 6 我的逻辑是
  • Haskell GHC:具有 N 个构造函数的模式匹配的时间复杂度是多少?

    假设我们有以下 Haskell data T T0 T1 T2 TN toInt T gt Int toInt t case t of T0 gt 0 T1 gt 1 T2 gt 2 TN gt N 这里使用什么算法来执行模式匹配 我看到两
  • 测试列表是否已排序

    在 haskell 中找到最小列表确实很容易 foldl1 min 9 5 7 3 7 4 6 10 给我3 我更换了min with lt 测试列表是否已排序 foldl1 lt 9 5 7 3 7 4 6 10 我收到此错误消息 No
  • 为什么Haskell没有split函数? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在许多语言中 都有一个函数可以使用指定的分隔符将字符串分成几部分 它经常被称为split 您可以在 Python C Java JavaScri
  • 镜头中的观看和使用有什么区别?

    有什么区别 view MonadReader s m gt Getting a s a gt m a and use MonadState s m gt Getting a s a gt m a in 控制镜头吸气剂 https hacka
  • Control.Arrow 与 Data.Tuple.Extra

    我经常使用以下功能Data Tuple Extra图书馆 first second and both 有等效的 函数Control Arrow 其实我更喜欢Data Tuple Extra因为我完全迷失了文档Control Arrow 使用
  • Haskell:处理死锁的自引用列表

    GHC 允许永久阻止以下内容是否有任何有用的理由 list 1 tail list 看起来列表迭代器 生成器有点复杂 我们应该能够做一些更有用的事情 Return error Infinitely blocking list Return
  • 应用交换律

    带有效果的应用程序编程 http staff city ac uk ross papers Applicative html麦克布莱德和帕特森的论文提出了互换法 u lt gt pure x pure f gt f x lt gt u 为了
  • Haskell 真的是纯粹的吗(有任何语言可以处理系统外的输入和输出)吗?

    在谈到函数式编程中的 Monad 后 该功能是否真的使语言变得纯粹 或者它只是黑板数学之外的现实世界中计算机系统推理的另一张 免狱卡 EDIT 这不是有人在这篇文章中所说的火焰诱饵 而是一个真正的问题 我希望有人能用它来击倒我并说 证明 它
  • 算法 - 如何有效删除列表中的重复元素?

    有一个list L 它包含以下元素任意类型each 如何有效删除此类列表中的所有重复元素 必须保留订单 只需要一个算法 因此不允许导入任何外部库 相关问题 在Python中 从列表中删除重复项以使所有元素都是唯一的最快算法是什么在维持秩序的
  • 不同 hs 文件中的函数分离时堆栈空间溢出

    我有一个巨大的 haskell 文件 它编译和运行没有任何问题 我想将一些函数和类型定义放在通用 hs 文件中的单独模块中 然后将其导入我的主模块中 虽然主程序编译时没有任何错误 它还编译导入的模块 但当我尝试运行它时 出现堆栈空间溢出 I
  • 如何获取常量内存中的统计数据

    我有一个函数 它会创建一些随机的数值结果 我知道 结果将是 a 小 a b 约 50 范围内的整数a b 我想创建一个执行上述函数 1000000 次的函数 并计算每个结果出现的频率 该函数使用随机生成器来生成结果 问题是 我不知道如何在常
  • 计算两点之间的距离(Haskell)

    给定两个元组的输入 我希望能够使用以下公式计算两点之间的距离 距离 sqrt x1 x2 2 y1 y2 2 所以我希望函数调用和输出如下所示 gt distance 5 10 3 5 5 385 当我尝试运行下面的代码时 它告诉我输入 w
  • 列表理解:制作列表列表

    你好 我正在尝试在 haskell 中创建一个函数 该函数接受一个数字 a 使用列表 即数字 将其一部分4它会创造 1 1 1 1 1 1 2 1 3 2 2 4 我正在考虑使用列表理解来创建列表 x 然后使用 1 n 中的数字创建更多列表
  • 如何将只缓存某些内容的字段添加到ADT?

    我经常需要向 ADT 添加字段 仅记住一些冗余信息 但我还没有完全弄清楚如何又好又高效地做到这一点 说明问题的最好方法是举个例子 假设我们正在使用无类型 lambda 项 type VSym String data Lambda Var V
  • Haskell 中的相互递归求值器

    Update 我已经添加一个答案 https stackoverflow com questions 3524485 mutually recursive evaluator in haskell 4504200 4504200这描述了我的
  • 在 haskell 中处理 IO 与纯代码

    我正在编写一个shell脚本 我在haskell中的第一个非示例 它应该列出一个目录 获取每个文件大小 进行一些字符串操作 纯代码 然后重命名一些文件 我不确定我做错了什么 所以有两个问题 我应该如何安排这样的程序中的代码 我有一个具体问题
  • 解析 PHOAS 表达式

    我想我理解 PHOAS 参数化高阶抽象语法 我明白了如何漂亮地打印一个表达式 参见http www reddit com r haskell comments 1mo59h phoas for free by edward kmett cc
  • 什么是阴谋地狱?

    在阅读有关 阴谋地狱 的内容时 我有点困惑 因为这个词的含义太多了 我猜最初 Cabal Hell 指的是钻石依赖问题 该问题是通过限制构建计划在每个构建计划中只有任何包的单个版本来解决的 一个包的两个不同版本不能存在于单个构建计划中 正如
  • 地图不是接受一个函数而列表返回一个列表吗?

    map2 List a gt b gt c gt a gt b gt c map2 List f map2 List f a as bs map f a bs map2 List f as bs 这是我的讲座中的一个示例 它尝试将二元函数应

随机推荐

  • 将 angularjs 值传递给 PHP 变量

    我从 AngularJS 和 ngStorage 开始 我可以成功保存并显示数据 我像以前一样显示值 myobj session 我想将任何存储的值传递到 php 变量中 下面显示的是我的想象逻辑 我知道那是行不通的 我的问题是如何以正确的
  • 如何让 jest 使用 ES6 依赖项

    所以我有一个依赖包 我将其拉入我的 node modules 文件夹中 这个包中有一个像这样的导出 Object
  • PHP sleep() 导致 CPU 使用率高

    我正在运行一个大部分时间处于睡眠状态的 CLI 脚本 每隔 10 秒左右 脚本就会执行一些操作 问题是 脚本在睡眠时 CPU 使用率为 94 我设置的方法是 while 1 sleep 10 doStuff 虽然这按预期工作 但存在一个明显
  • 字符+字符=整数?为什么?

    为什么要加两个char在 C 中结果为int type 例如 当我这样做时 var pr R G B Y P the pr变量变成int类型 我希望它是一个string类型值为 RGBYP 为什么C 要这样设计呢 默认实现不是添加两个cha
  • 从Excel VBA的下拉列表中选择特定项目

    我正在为我的办公室设计一个仪表板 这一切都有效 但我想添加一个选项 而不是在下拉列表中搜索 250 多个项目 您还可以单击一个单元格 下拉列表将更改为该值 并且分配的宏将为该下拉列表运行 到目前为止 我不知道如何让 vba 从下拉列表中选择
  • 具有列表视图的 Android 小部件正在刷新具有丑陋的短“闪烁”效果的项目

    我想制作一个带有 ListView 的小部件 您可以在其中添加 listItems 来显示计数器计时器 以查看您有多少时间来处理某个事件 这是我第一次使用小部件 我不知道我的方法是好还是坏 到目前为止我得到了这个 AppWidgetProv
  • Javascript - 所有嵌套的 forEach 循环完成后的回调

    我确信这是一个相当简单的任务 但我现在无法全神贯注 我有一组嵌套的 forEach 循环 当所有循环运行完毕时 我需要一个回调 我愿意使用 async js 这就是我正在处理的 const scanFiles function accoun
  • 如何使用 BiWeekly 库和 Java Mail API 创建现有事件并发送更新?

    我在用着BiWeekly http sourceforge net projects biweekly 库来创建 VEVENT 然后使用以下命令发送它Java 邮件 API https java net projects javamail
  • 具有动态数量的并行消费者的 Kafka 工作队列

    我想用Kafka来 分工 我想将工作实例发布到某个主题 并运行由相同使用者组成的云来处理它们 当每个消费者完成其工作时 它将从该主题中提取下一个工作 每项工作只能由一个消费者处理一次 处理工作非常昂贵 因此我需要在许多机器上运行许多消费者才
  • New (std::nothrow) 与 try/catch 块中的 New

    学习后我做了一些研究new 不像malloc 我习惯了 分配失败时不会返回 NULL 并且发现有两种不同的方法来检查 new 是否成功 这两种方式是 try ptr new int 1024 catch std bad alloc exc
  • PayPal 自适应付款错误 您无权隐式执行此付款

    我有一个发送付款的简单应用程序 该应用程序在沙箱中运行良好 实时经典应用程序的应用程序 ID 已获得批准 显示为 自动批准 但当我输入实时凭据时 它返回错误 您无权隐式执行此付款 发送 XML 到端点https svcs paypal co
  • 在钩子 woocommerce_checkout_order_processed 中获取订单详细信息

    add action woocommerce checkout order processed send order fax function send order fax order id print r REQUEST die 我想在这
  • JavaScript 异步返回值/使用 jQuery 赋值[重复]

    这个问题在这里已经有答案了 我有以下 jQuery 函数 我正在尝试返回此处显示的 GUID 值alert 警报工作正常并且值已填充 但是我似乎无法将其分配给变量并返回其值 最终我需要访问其他函数中的GUID值等 我尝试过的所有内容都仅显示
  • 不可变对象是线程安全的,但为什么呢?

    举例来说 一个线程正在通过创建不可变类的对象来创建和填充不可变类的引用变量 而另一个线程在第一个线程完成并创建不可变类的另一个对象之前启动 那么不可变类的用法不是线程吗不安全 创建不可变对象还意味着所有字段都必须标记为final 如果引用了
  • Linq to SQL - 关闭代码中的 UpdateCheck

    我想关闭UpdateCheck所有成员的功能 除了他们的主键 现在我按照下面的示例作为指导 但是我的表的 MetaDataMembers 仍然设置为Always http www the lazy coder com 2013 04 set
  • System.ArgumentException'jobobject' 不得为 IntPtr.Zero。参数名称:jobobject

    我收到一个错误 我无法理解 我在 void 方法中有这个简单的警报对话框生成器 private void startAction AlertDialog Builder builder builder new AlertDialog Bui
  • 如何使用 PowerShell 检查是否启用了 Hyper-V?

    我正在尝试编写一个 PowerShell 脚本来检查 Windows 可选功能以查看是否安装了 Hyper V 但是 我的代码不起作用 即使 Hyper V 已禁用 脚本也会输出它已启用的信息 Requires RunAsAdministr
  • 将 MySQL 服务器连接到 NetBeans

    我正在尝试在 Netbeans 中连接 MySQL 数据库 但停留在第一步 连接数据库 我的数据库在控制台上工作正常 尝试命令 mysqladmin u root p ping 它说 mysql id 还活着 我什至从控制台创建了数据库 现
  • 从 3D 平面到平行于图像平面的平面的单应性

    我有一张图像 其中场景中有一个校准目标 已知几何形状 假设桌子上有一个简单的 2 x 2 正方形 我想执行透视变换 使用warpPerspective 以便生成的图像是桌子的正交视图 就好像相机轴与桌子法线平行 计算单应性的标准过程是从一个
  • 从字符串中删除每个第 n 个元素

    如何删除字符串中的每第 n 个元素 我猜你会使用drop以某种方式发挥作用 就像这样删除第一个 n 你怎么能改变它 只删除第 n 个 然后是后面的第 n 个 依此类推 而不是全部 dropthem n xs drop n xs 简单的 取