haskell - 定义 foldr 变体时出现非详尽模式错误
问题描述
我被要求制作一个类似foldr
但具有非空列表的函数,它的工作方式如下foldr1 f [x1,x2...xn] = f x1 (f x2...(f xn-1 xn)...)
:
所以我这样定义它:
foldr1 f [x] = x
foldr1 f (x:xs) = f x (foldr1 f xs)
foldr1 f _ = undefined
尽管涵盖了所有可能性,但我仍然收到“函数 foldr1 中的非详尽模式”错误。我究竟做错了什么?
解决方案
推荐阅读
- apache-kafka - 状态存储更改日志主题的消费者是什么
- javascript - 在 XMLHTTPrequest 的 onload 回调中访问上下文`this`,同时保留响应对象
- unity3d - Unity - 如何管理角色及其配件的显示
- javascript - 聚合物中的切换按钮问题
- flutter - Widget 和 CupertinoWidget:避免代码重复
- mongodb - 在 MongoDB 的字段名称中使用 snake_case 有什么缺点?
- iterm2 - iterm2 使用 bash 和 zsh
- node.js - 如何验证用户是否存在于仅给出的 kuzzle 数据库中
和一个 那个用户? - python - 手动计算分类准确度与 keras 给出的不匹配
- javascript - Post 请求在 Postman 和 Insomnia 中运行良好,但在 JS 代码中不行