ELM QueryString 解析器无法编译

2024-03-17

我真的很想学习一些 ELM,但是我的思想在查询解析时崩溃了,我的想法是创建一个函数来按名称获取查询字符串值,例如:给定一个查询字符串?name=Neuber像这样的函数getParam "name"那会返回Neuber

但它在最基本的例子中失败了,它甚至无法编译

page comes 从这里 https://package.elm-lang.org/packages/elm/url/latest/Url-Parser-Query#map

routeParser comes 从这里 https://package.elm-lang.org/packages/elm/url/latest/Url-Parser-Query#map2

module Main exposing (..)
-- import Url.Parser exposing (Parser, (</>), (<?>), oneOf, s)
import Url.Parser.Query exposing (int, map, map2, string)

type alias QueryParams =
  { search : Maybe String
  , page : Maybe Int
  }


routeParser : Url.Parser.Query.Parser QueryParams
routeParser = map2 QueryParams (string "search") (int "page")

page : Url.Parser.Query.Parser Int
page = map (Result.withDefault 1) (int "page")

我得到的错误

-- TYPE MISMATCH ---------------- /a/long/way/to/project/src/Main.elm

The 2nd argument to `map` is not what I expect:

15| page = map (Result.withDefault 1) (int "page")
                                       ^^^^^^^^^^
This `int` call produces:

    Url.Parser.Query.Parser (Maybe Int)

But `map` needs the 2nd argument to be:

    Url.Parser.Query.Parser (Result x number)

Hint: I always figure out the argument types from left to right. If an argument
is acceptable, I assume it is “correct” and move on. So the problem may actually
be in one of the previous arguments!

眼前的问题是int "page"将返回一个Maybe Int,但你试图将它与Result.withDefault,正如错误消息所示,它期望Result。解决这个问题的方法就是使用Maybe.withDefault反而。

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

ELM QueryString 解析器无法编译 的相关文章

  • 懒惰的 juxt 函数有什么优点吗?

    在回答中一个问题 https stackoverflow com questions 10044254 is there a reverse map function关于一个使用相同参数映射多个函数的函数 A juxt 我想出了一个基本上采
  • Scala 中的函数式反应式编程 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话
  • Java Stream:通过布尔谓词分为两个列表

    我有一个清单employees 他们有isActive布尔字段 我想分employees分为两个列表 activeEmployees and formerEmployees 是否可以使用 Stream API 来实现 最尖端的方法是什么 C
  • 如何在函数式编程中为AST节点生成稳定的id?

    我想将一个特定的 AST 节点替换为另一个节点 并且这个替换的节点是由交互式用户输入指定的 在非函数式编程中 可以使用可变数据结构 并且每个AST节点都有一个对象引用 因此当我需要引用特定节点时 我可以使用这个引用 但在函数式编程中 使用I
  • 在 F# 中组合谓词

    F 中是否有逻辑组合谓词的标准方法 例如 假设我有isCar x and isBlue x然后我想要一些能给我的东西 let isBlueCar x isCar x isBlue x 但是使用某种组合而不是调用 可能像 let isBlue
  • Haskell 将两个列表中不同索引处的元素组合起来

    对这个糟糕的标题表示歉意 我不太确定如何用语言描述它 但这就是我的意思 如果您知道更好的表达方式 请告诉我 假设我有 2 个长度相等的列表 a b c x y z 我想创建列表 a y z b x z c x y 本质上 对于 list1
  • 阻塞事件循环

    我正在通过 Nodeschool 参加 函数式 Javascript 研讨会 其中一项练习的标题是 阻止事件循环 我很难理解它 通过过去的练习 我确保真正尝试理解解决方案 这样如果我必须重做问题 我就会理解如何解决它 而不是第一次就破解它
  • 使用参与者模型进行基于时间的模拟

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

    假设我创建一个将两个整数相加的函数 def addInt a Int b Int Int Int val x a b x 2 我回来了 result 2 故意为了这个问题 现在我想创建一个仅返回 x 的变量 val result addIn
  • 纯函数可以异步吗?

    在浏览纯函数的定义时 它通常定义有两个特征 1 给定相同的输入应该产生相同的输出 2 不应产生任何副作用 这是否也意味着纯函数不应该是异步的 如果不是 怎么会这样 如果是的话 我很想看到 JavaScript 中异步纯函数的一些示例 是的
  • 计算 python 字典/数组数据结构的非空尾叶 - 递归算法?

    我正在寻找一个函数来查找一种复杂字典 数组结构的所有非空端点 我认为因为我不知道嵌套数组的数量或它们的位置 所以它必须是递归的 而我只是还没有完全理解这种思维方式 所以对于嵌套字典 x top middle nested value nes
  • 使用 ocaml List.fold_left 列表中的最后一个元素

    我可以通过以下代码找到列表的最后一个元素 let last xs a list a let rec aux xs prev match xs with gt prev x ys gt aux ys x in match xs with gt
  • 函数式编程是否需要新的命名约定?

    我最近开始使用 Haskell 学习函数式编程 并在 Haskell 官方 wiki 上发现了这篇文章 如何阅读哈斯克尔 http www haskell org haskellwiki How to read Haskell What t
  • f# 运行总计序列

    好吧 这看起来应该很容易 但我就是不明白 如果我有一个数字序列 如何生成由运行总计组成的新序列 例如 对于序列 1 2 3 4 我想将其映射到 1 3 6 10 以适当的功能方式 Use List scan https msdn micro
  • Ruby 反向柯里化:这可能吗?

    关于 Ruby 1 9 x 中的柯里化 我一直在某些地方使用它 并且可以像基本上支持 proc 参数的默认参数一样进行翻译 p proc x y z x y z p curry 1 gt returns a lambda p curry 1
  • 单位安全平方根

    我只是想知道如何以与 F 正确交互的方式编写用户定义的平方根函数 sqrt 单位制 http blogs msdn com andrewkennedy archive 2008 09 04 units of measure in f par
  • 在管道中重用变量的功能方式

    在 javascript 和 typescript 中与 Ramda 一起使用函数式编程 我经常发现自己编写如下代码 const myFun c gt const myId c id const value pipe getAnotherO
  • 返回 Java 8 中的通用函数接口

    我想写一种函数工厂 它应该是一个函数 以不同的策略作为参数调用一次 它应该返回一个函数 该函数根据参数选择其中一种策略 该参数将由谓词实现 嗯 最好看看condition3为了更好的理解 问题是 它没有编译 我认为因为编译器无法弄清楚函数式
  • 为什么Racket中foldl的定义方式很奇怪?

    在 Haskell 中 与许多其他函数式语言一样 函数foldl被定义为 例如 foldl 0 1 2 3 4 10 这没关系 因为foldl 0 1 2 3 4 根据定义 0 1 2 3 4 但是 在 球拍 中 foldl 0 1 2 3
  • 你能在 scala 中使用 varargs 柯里化一个函数吗?

    我正在考虑如何用可变参数柯里化一种方法 然后我意识到我什至不知道如何去做 理想情况下 它应该让您可以随时开始使用它 然后以可迭代结束 def concat strs String strs mkString val curriedConca

随机推荐

  • Oracle 基于函数的索引

    也许是一个愚蠢的问题 但是使用基于函数的索引是否安全 我的意思是 当列更改时索引会立即更改吗 假设它们设置正确 是的 概述 Oracle 在带有基于函数的索引的表上创建一个隐藏列 每次更改基于函数的索引的列时都会更新该隐藏列 假设这些值是确
  • Android 上的 Xamarin 表单选取器更改取消文本

    Android 上的 Xamarin Forms 单击选择器将打开对话框 否定按钮的默认文本为 取消 我怎样才能改变它 我查看了 Xamarin 的开源项目 他们设置了这样的肯定按钮文本 builder SetNegativeButton
  • C# 将程序添加到Windows启动(Windows 7)

    我试图通过将程序执行路径添加到注册表编辑器来将我的程序添加到 Windows 启动程序中 这是代码 RegistryKey registryKey Registry CurrentUser OpenSubKey SOFTWARE Micro
  • Android Webview 在三星和 Android 11 上崩溃

    这是我们在 Firebase 上看到的堆栈跟踪 Fatal Exception java lang RuntimeException Using WebView from more than one process at once with
  • Javascript Package 关键字的用途是什么?

    我正在阅读一些有关 JavaScript 保留关键字的在线材料 并且偶然发现了这个词package 我找不到任何清晰的在线材料可以解释它的用途 它是保留的 但不一定使用 好吧 至少在撰写本文时不是 以下内容被 ECMAScript 规范保留
  • Jsonpath 与 Jackson 或 Gson

    我收到一个大的 json 文档 我只想将其中的一部分解析到我的 java 类中 我正在考虑使用像 jsonpath 这样的东西从中提取部分数据 而不是创建 java 类的整个层次结构 Jackson 或 Gson 是否以任何方式支持 jso
  • 按值对 Tcl 字典排序

    我想知道 Tcl 中是否有一种按值对 dict 进行排序的优雅方法 假设我有以下字典 set d1 dict create k1 10 k2 89 k3 1 k4 15 k5 20 Results in dict of form k1 gt
  • 对无响应的 Flask 路由的调用设置超时(已更新)

    我目前在 Flask 应用程序中有一条路线 可以从外部服务器提取数据 然后将结果推送到前端 外部服务器偶尔会缓慢或无响应 在路由调用上设置超时的最佳方法是什么 以便在外部服务器滞后时前端不会挂起 或者在 Flask 中是否有更合适的方法来处
  • 单击按钮时 JFrame 未打开

    我有两个JFrame public class Main extends JFrame public class ColourOption extends JPanel implements ActionListener然后将其设置在 JF
  • MySQL/PHP 事务行为

    Given mysql query START TRANSACTION mysql query UPDATE foo bar die die 在我可以之前停止交易COMMIT or ROLLBACK 查看我的表 似乎更新没有发生 但是如果我
  • dtype=string>' aria-label='Tensorflow:类型错误:需要二进制或 unicode 字符串,得到 dtype=string>'> Tensorflow:类型错误:需要二进制或 unicode 字符串,得到 dtype=string>

    这是代码 filename tf placeholder tf string image raw data tf gfile FastGFile filename rb read image tf image decode jpeg ima
  • Java 中 writeByte() 的数值限制

    数据输出流方法 writeByte int 顾名思义 在流上写入一个字节 int 这有什么限制 是 256 还是有符号并且是 128 到 127 writeByte int 调用write int 的文档write int says 将指定
  • 如何将 Access 2003 mde 与 Access 2007 一起使用并保留自定义菜单/工具栏?

    请描述在 Access 2007 运行时中使用已编译的 Access 2003 mdb 所需的确切步骤 并保留我的自定义菜单和工具栏 以便它们看起来与在 2003 运行时中一样 我尝试遵循网络上的各种不完整的说明 但最终我的菜单 工具栏要么
  • 如何找到以编程方式编译 .NET 程序集的平台?

    看看下面的JetBrains dotPeek鉴于某些给定的程序集 我如何以编程方式确定此类程序集编译的平台 我尝试了以下方法 该方法不适用于在 NET Core 中编译的程序集 public static string GetFramewo
  • iPhone 上的色彩平衡

    我正在拍摄一张图像 通过屏幕上下文加载它 并逐像素地更改它 我有许多不同的滤镜应用于图像 但我需要做的最后一件事是改变色彩平衡 类似于 Photoshop 以使红色更加青色 下面的代码显示了我如何拍摄图像 获取数据以及逐像素检查 r g b
  • 使用 hash_hmac 和ripemd160 快速散列字符串

    我正在尝试使用 Swift 3 和 或 Objective C 对字符串进行哈希处理ripemd160模拟以下 php 的输出 string string key test hash hmac ripemd160 string key ou
  • 在 PowerPoint 中重命名对象

    可能是一个非常愚蠢的问题 但我不知道如何在 PowerPoint 中重命名对象 例如 我所有的图表默认称为 图表 1 等 有人可以帮我吗 谢谢 在 PowerPoint 2007 中 您可以从 选择 窗格执行此操作 要显示选择窗格 请单击功
  • 尽管在本地主机上工作,但部署到 Azure 时,Azure Active Directory 始终重定向到“~/.auth/login/done”

    因此 我正在开发一个 ASP NET Core 应用程序 NET Core 2 0 作为 Azure 上的应用服务托管 我想使用单个租户 因此只有我们公司的帐户 通过 Azure AD 实施身份验证 实际上 我添加了所有必要的代码 注册了应
  • 在 Outlook 中执行搜索查询

    您好 我想知道是否可以从我的 WinForms 应用程序向 Outlook 2010 发送搜索查询 也就是说 不是像我一直在搜索并找到的那样搜索 PST 文件 而是尝试在 Outlook 中显示结果列表 就像我自己在搜索框中键入内容一样 如
  • ELM QueryString 解析器无法编译

    我真的很想学习一些 ELM 但是我的思想在查询解析时崩溃了 我的想法是创建一个函数来按名称获取查询字符串值 例如 给定一个查询字符串 name Neuber像这样的函数getParam name 那会返回Neuber 但它在最基本的例子中失