小编rec*_*nja的帖子

使用尾递归查找给定元素的索引

我正在尝试编写一个函数来使用尾递归查找给定元素的索引。假设列表包含1到 的数字10,并且我正在搜索5,那么输出应该是4。我遇到的问题是使用尾递归“计数”。但是,我什至不确定在这种情况下是否需要手动“计算”递归调用的数量。我尝试使用!!which 没有帮助,因为它返回特定位置的元素。我需要该函数返回特定元素的位置(完全相反)。

我已经尝试解决这个问题一个小时了。

代码:

  whatIndex a [] = error "cannot search empty list"
  whatIndex a (x:xs) = foo a as
    where
       foo m [] = error "empty list"
       foo m (y:ys) = if m==y then --get index of y
                         else foo m ys
Run Code Online (Sandbox Code Playgroud)

注意:我试图在不使用库函数的情况下实现这一点

haskell

0
推荐指数
1
解决办法
2360
查看次数

Haskell,我一直得到"输入`='上的解析错误"

我正在完成作业.我不知道为什么我会收到这个错误.

我通过评论指出了错误来自的行.

如果你能(你没有),我不认为我funccall职能工作.

import Data.Maybe 

data Operator = Add | Sub | Mul | Div | And | Or | Not | Eq | Less | Great
  deriving (Eq, Show)
data Expression = Lit Value
         | Prim Operator [Expression]
         | Variable String
         | If Expression Expression Expression
         | Let [(String, Expression)] Expression
     | Func [String] Expression
     | Call Expression [Expression]
  deriving (Show, Eq)

data Value = Num Int
           | Bool Bool
       | Closure [String] Expression Environment …
Run Code Online (Sandbox Code Playgroud)

haskell

0
推荐指数
1
解决办法
274
查看次数

找出lambda演算/ haskell类型的一些例子

假设函数将两个不同类型的变量作为其输入(例如,一个变量在C语言中为int,一个变量在C语言中为char)并返回一个变量Int.

如果此函数被编码为Haskell或lambda演算代码,函数的类型将如何?

所以假设函数有类型Int -> (Char -> Char) -> Int.这意味着什么?这是否意味着它接收int变量作为输入并运行函数(Char -> Char)和输出Int变量?

lambda haskell lambda-calculus

0
推荐指数
1
解决办法
230
查看次数

在Haskell中获取Num数组的索引

我需要获取may数组类型中元素的位置Array Int Int.我找到了方法elemIndexfind获得了这个位置.我的问题是,我不需要前缀Just 5例如.那我怎么只得到5我的例子中的数字?

indexing haskell list

0
推荐指数
1
解决办法
672
查看次数

在Haskell中反转列表元素

我试图反转两个元素列表xs.例如,invert [[1,2], [5,6,7], [10,20]]将返回[[2,1], [5,6,7], [20,10]].它不会反转,[5,6,7]因为它是一个3元素列表.

所以我到目前为止写了这个:

invert :: [[a]] -> [[a]]
invert [[]] = [[]]
Run Code Online (Sandbox Code Playgroud)

这只是类型声明和空列表情况.我是Haskell的新手,所以关于如何实现这个问题的任何建议都会有所帮助.

haskell list

0
推荐指数
1
解决办法
530
查看次数

Haskell - 如何遍历列表和反转元素

我无法在Haskell中查找有关简单操作的文档.

我有名单(名单:: [[a]]),我需要扭转所有的元素列表的x地方length x >= 2.

到目前为止,我还没有找到任何东西:

  • 如何遍历列表

  • 我怎样才能找到元素的长度.有length我可以使用的功能,但我还不知道如何使用它.

我确实找到了reverse列表的功能,但我找不到它.

如果对这些个别实施有任何帮助,我们将不胜感激.我可以把它们拼凑起来.

haskell

-1
推荐指数
1
解决办法
1263
查看次数

Haskell类似函数(可能)

我必须实现一个功能 maybemap

它具有(类似于功能图)功能

f :: a -> b
Run Code Online (Sandbox Code Playgroud)

它应该应用于列表类型Maybe a并给出一个列表Maybe b

maybemap :: (a -> b) -> [Maybe a] -> [Maybe b]
Run Code Online (Sandbox Code Playgroud)

我该如何定义这个maybemap功能?

haskell

-2
推荐指数
2
解决办法
360
查看次数

-5
推荐指数
1
解决办法
507
查看次数