andThen 类型不匹配的 Scala 链接函数

2024-05-14

我有一堆函数可以清理文本并将它们分成单词。最小的例子:

val txt = "Mary had a @little \nlamb"
val stopwords = Seq("a")
def clean(text: String): String = text.replaceAll("\n*\r*", "")
def tokenize(text: String): Seq[String] = text.split("\\s")

val cleaned = clean(txt)
val tokens = tokenize(cleaned)

这段代码按预期工作。但并不真正地道。 我本来希望这样做:

clean(txt) andThen tokenize

但编译器抱怨这个错误type mismatch; required: Char => ?在 tokenize 函数中。

我在这里缺少什么?


clean返回一个String。你正在尝试使用andThen on a String实例(因为您正在调用method with clean(txt))并且编译器将其推断为PartialFunction[Char, ?](因为WrappedString继承AbstractSeq[Char]它继承了PartialFunction[Char, A])。这就是您看到类型不匹配的原因。如果您想将两者组合在一起,请使用 eta-expansion 将它们转换为函数类型:

val res = clean _ andThen tokenize
println(res(txt))

函数组合适用于 Scala 函数,不适用于methods(有区别),这就是为什么我们必须首先将方法扩展为函数(clean _),然后编译器将能够推断tokenize对于我们来说,无需手动扩展它。

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

andThen 类型不匹配的 Scala 链接函数 的相关文章

  • Scala 中的高级类型 [重复]

    这个问题在这里已经有答案了 我正在阅读 Scala 中的函数式编程一书 在 Monoids 章节中 他们讨论了 Monoid 接口 如下所示 trait Monoid A def op a1 A a2 A A def zero A 后来 他
  • Spark scala:大量列上的简单 UDF 会导致性能下降

    我有一个包含 1 亿行和约 10 000 列的数据框 这些列有两种类型 标准 C i 和动态 X i 这个dataframe是经过一些处理后得到的 性能很快 现在只剩下2步了 Goal 需要使用 C i 列的相同子集对每个 X i 执行特定
  • 导入 sbt 项目时出错,服务器访问错误,未解决的依赖项

    我正在尝试从 IntelliJ IDE 15 0 2 的 build sbt 中导入我的项目中的库 我不断收到未解决的依赖项错误 我尝试更新不同论坛的设置来解决该问题 但没有任何效果 我尝试过的几件事 使用代理设置更新 sbtconfig
  • 如何通过数据框中数组列的索引计算平均值

    我正在使用 Spark 2 2 我有一个关于合作的基本问题ArrayType 我没有找到可以使用的内置聚合函数 Given a DataFrame有一个柱子id和一列values of ArrayType 我们想按 id 分组 然后按索引计
  • 如何在 scala 中的二维数组上使用 contains 方法

    我有一个二维数组 我想检查二维数组内是否存在数组 我努力了 var arr Array Array 2 1 Array 4 3 var contain arr contains Array 4 3 println contain 这应该打印
  • 具有定期更新的静态数据集的结构化流

    将流媒体与静态数据集合并是结构化流媒体的一个重要功能 但在每个批次中 数据集都会从数据源刷新 由于这些源并不总是那么动态 因此在指定的时间段 或批次数 内缓存静态数据集会提高性能 在指定的时间段 批次数之后 将从源重新加载数据集 否则从缓存
  • 什么时候有2.13的sbt版本?

    我想开发一个sbt插件其依赖项仅适用于斯卡拉2 13 我发现https github com sbt sbt issues 5032 https github com sbt sbt issues 5032这个列表 SBT 0 x 仅在 S
  • 发送 FakeRequest 时如何为 akka.stream.Materializer 提供隐式值?

    我正在尝试理解下面看到的错误 并学习如何修复它 could not find implicit value for parameter materializer akka Stream Materializer val fut Future
  • 一起调用distinct和map会在spark库中抛出NPE

    我不确定这是否是一个错误 所以如果你这样做 d spark RDD String d distinct map x gt d filter equals x 您将获得 Java NPE 但是如果你做了一个collect之后立马distinc
  • 带有泛型参数的抽象类的 JsonFormat

    我正在尝试为具有通用参数的抽象类编写 JsonFormat 如下所示 abstract class Animal A def data A def otherStuff String stuff case class CatData cat
  • 将括号子集映射到字符

    我正在尝试创建一个 Scala 方法 该方法将采用一个父括号组 表示为字符串 然后将每个括号子组映射到不同的字母 然后它应该将它们放入它返回的映射中 所以基本上我调用以下方法 如下所示 val s 2 x 3 6 val map mapPa
  • 这是一种在 Akka FSM 中内部监视到第一个状态的转换的方法吗?

    考虑从状态 Idle 开始的 FSM actor startWith Idle IdleData 我想监视到第一个状态的转换 从无状态 I tried onTransition case gt Idle gt Wasn t called 根
  • 单击“发送”按钮事件时,我们可以在哪里获取 xml/元数据格式的表单数据?

    我是一个新的 scala 学习者 作为要求的一部分 我需要将表单数据插入 activemq 队列中以进行提交事件 我尝试调试发送方法代码 以了解单击 FormRunnerActions scala 类中的发送按钮时我们到底在哪里获取 xml
  • 如何对 RDD 进行分区

    我有一个文本文件 其中包含大量由空格分隔的随机浮动值 我正在将此文件加载到 scala 中的 RDD 中 这个RDD是如何分区的 另外 是否有任何方法可以生成自定义分区 以便所有分区都具有相同数量的元素以及每个分区的索引 val dRDD
  • 使用 scala 进行重复的所有排列

    我正在寻找 scala 方法来给出所有排列而不重复 我知道这个网站上已经有一些帖子 但它们似乎有一个稍微不同的问题 我正在寻找所有重复的排列 例如 combine List A C G 应该产生 List List A A A List A
  • Scala 宏 - 使用“c.prefix”推断隐式值

    c inferImplicitValue推断调用站点范围中的隐式值 是否可以使用推断隐式c prefix scope 这不是有效的代码 但表达了我需要的内容 c prefix inferImplicitValue 我目前正在使用一个简单的实
  • 如何在 Scala 用户定义注释中使用命名参数?

    在下面的代码中 我能够获得第一个注释对象 Publishable 但不能获得第二个 第二个使用命名参数 它转换为 x 2 x 3 x 1 作为 AST 中的参数 我该如何正确地做到这一点 class Publishable val path
  • Scala 中的数字格式?

    我有一个从文件中读取的动态变化的输入 数字是Int or Double Scala 为什么要打印 0每次之后Double数字 Scala 有没有办法以与读取相同的方式打印它 Example var x Double 1 println x
  • 将 Apache Flink 与 Lagom 结合使用时出现 java.io.NotSerializedException

    我正在 Lagom 的微服务实现中编写 Flink CEP 程序 我的 FLINK CEP 程序在简单的 scala 应用程序中运行得非常好 但是当我在 Lagom 服务实现中使用此代码时 我收到以下异常 拉戈姆服务实施 override
  • Spark Collect_list 并限制结果列表

    我有以下格式的数据框 name merged key1 internalKey1 value1 key1 internalKey2 value2 key2 internalKey3 value3 我想做的是将数据框分组name 收集列表并l

随机推荐

  • FullCalendar Asp.Net WebForms

    我正在尝试实施全日历 https i stack imgur com wmhGx png在我的 ASP NET 上WebForms项目 我见过一些实现此目的的示例 但没有任何运气 因为它们是针对我不习惯的 MVC 的 My Events数据
  • 避免数据集中出现重复名称

    我正在从表中获取数据并绑定到标签并在 gridview 中下拉 但我想从表中过滤重复的名称并将相应的日期分配给 DDL 如何做到这一点 或者还有其他选择吗 private DataSet get string sql select Id N
  • 检测到 C# 无法访问的代码

    我在 Visual Studio 中的以下代码中的 i 处收到一条 检测到无法访问的代码 消息 你能看出我做错了什么吗 try RegistryKey OurKey Registry CurrentUser OurKey CreateSub
  • 是否可以进行条件解构或有后备?

    我有一个具有许多深层嵌套属性的对象 我希望能够访问 MY KEY 上的属性 如下 但如果该属性不存在 则获取 MY OTHER KEY 我怎样才能做到这一点 const X Y MY KEY Values segments segment
  • Python:“直接”调用方法是否实例化对象?

    我是 Python 新手 在对我的对象进行单元测试时 我注意到一些 奇怪 的东西 class Ape object def init self print ooook def say self s print s def main Ape
  • 鸭子在 Go 中打字

    我想写一个Join函数接受任意对象String 方法 package main import fmt strings type myint int func i myint String string return fmt Sprintf
  • npm install 的 --save 选项是什么?

    我看到一些教程 其中命令是 npm install save 什么是 save选项是什么意思 更新 npm 5 As of npm 5 0 0 http blog npmjs org post 161081169345 v500 安装的模块
  • 多文件上传字段的重力形式预览缩略图

    我们使用重力形式将多个图像附加到图库自定义字段并创建新帖子 我们不知道如何在 HTML5 导入字段下显示图像缩略图 而不仅仅是在提交表单之前显示文件名 之前的答案仅涵盖单个文件上传 图片上传重力形式预览 https stackoverflo
  • 使用 Spring / JPA 写入 Postgres 数据库的 JSON 列

    我有一个名为 test 的表 其中包含 Postgres 9 3 中 json 类型的列 sample column 我正在尝试使用 Spring JPA 将以下内容写入列中 name 更新的名称 我在其他帖子中读到 我需要添加自定义转换器
  • 由于直接引用范围而不是通过中间变量而导致 Excel VBA 运行时错误 450

    当我尝试直接引用某个范围内的值时 出现运行时错误 450 但如果我使用中间变量 它就会起作用 我不明白为什么 所以我担心在将来的某个时候我会再次遇到错误而不知道为什么 我尝试过使用 With End With 块 但当我直接引用范围时它仍然
  • MYSQL:SQL查询获取自增字段的值

    我有一张桌子 主键是id及其自动递增 现在 当我插入新记录时 我需要获取更新记录的 id 我怎样才能做到这一点 如果我使用查询 select max id from table name 执行后我可以获得id 但我能确定它是刚刚插入的记录的
  • 如何编译GCC生成的asm?

    我正在玩一些汇编代码 有些事情困扰着我 我编译这个 include
  • LMAX Disruptor 可以移植到 C# 吗?

    我知道有些人正在开发 C 移植 C 端口可以吗 我特别考虑到 C 中易失性字段仅是 32 位的限制 如果这是唯一的问题 是否有人认为值得将该环形缓冲区写入仅具有 32 位允许的插槽数量 系统生命周期中发生的事件要少得多 我有这个权利吗 我们
  • 为什么在读取字典时要锁定

    我对我正在阅读的一本关于线程的书 C 3 in a Nutshell 中的代码列表感到困惑 在 应用程序服务器中的线程安全 主题中 给出了以下代码作为 UserCache 的示例 static class UserCache static
  • Jupyter笔记本突然变得很慢

    我以前在anaconda环境下运行jupyter运行得很好 显示警告后 IOPub data rate exceeded The notebook server will temporarily stop sending output to
  • 如果我以后要应用ado实体框架,推荐的数据访问层设计模式是什么?

    我正在创建一个网站并使用 Linq to SQl 作为数据访问层 并且我愿意使该网站可以在 linq to sql 和 ado 实体框架上工作 而无需更改其他层中的许多内容 业务逻辑层或 UI层 实现这一目标的推荐模式是什么 你能简单解释一
  • 无法加载所需框架:extjs 中的 ext@null

    设置 extjs 和 sencha 当我运行应用程序时出现错误无法加载所需的框架 root samuel pc Documents code test sencha app watch Sencha Cmd v6 5 0 180 ERR U
  • 建模前减少因子水平数量

    我有一个 2600 个级别的因子 我想在建模之前将其减少到 10 我想我可以通过这样的操作来做到这一点 如果一个因素列出的次数少于 x 次 则应将其放入名为 其他 的存储桶中 这是一些示例数据 df lt data frame colour
  • MySQL 将 ÅäÖ 视为 AAO?

    这两个查询给了我完全相同的结果 select from topics where name Harligt select from topics where name H rligt 这怎么可能 看起来mysql在搜索时会将 翻译成aao
  • andThen 类型不匹配的 Scala 链接函数

    我有一堆函数可以清理文本并将它们分成单词 最小的例子 val txt Mary had a little nlamb val stopwords Seq a def clean text String String text replace