haskell - 函数标量中的非穷举模式New
问题描述
在这种情况下,“函数 scalarNew 中的非详尽模式”是什么意思?
scalarNew :: [Integer]->[Integer]->Integer
scalarNew (x:xs) (y:ys)
| (length xs == length ys) = x * y + scalarNew xs ys
| otherwise = error "error"
解决方案
使用递归时必须添加基本情况。在这种情况下,基本情况是两者都是空列表。
scalarNew :: [Integer] -> [Integer] -> Integer
scalarNew [] [] = 0
scalarNew [] (y:ys) = error "error"
scalarNew (x:xs) [] = error "error"
scalarNew (x:xs) (y:ys)
| length xs == length ys = x * y + scalarNew xs ys
| otherwise = error "error"
编辑:只处理一个空列表的情况
推荐阅读
- python - Python:连续超过一定水平
- pandas - 熊猫创建一个具有其他值的新列
- css - 仅更改速记属性的一部分
- python - 如何从python中的数组列表中删除一个数组
- elasticsearch - 如何在 ElasticSearch Head Chrome 扩展中运行术语查询?
- postgresql - Postgres 12:为什么存储过程在运行多次后开始变慢
- python - 如何修复此错误:需要以下参数:--in-path、--out-path
- r - 基于单选按钮输入更新叶绿素图
- pyspark - 动态填充pyspark数据框中列中的行
- arrays - React - useState Hook with Context Api - 无法将状态数组复制到另一个状态数组