该问题说我需要计算一个字符列表中的位数,并将返回列表中的位数。我可能会使用isDigit,而我需要递归进行
NullPointerException
它在输入“ if”中显示解析错误
该问题说我需要计算一个字符列表中的位数,并将返回列表中的位数。我可能会使用isDigit,而我需要递归进行
NullPointerException
它在输入“ if”中显示解析错误
const first_array = [10,20,30];
let final_array = [];
const extra_value = 150;
final_array[0] = first_array[0] + extra_value;
final_array[1] = first_array[1] + extra_value;
final_array[2] = first_array[2] + extra_value;
本身是一个表达式;它会产生0或1,然后将其添加到递归调用的返回值。您不需要变量。
if
您可以利用为counta :: [Char] -> Int
counta [] = 0
counta (x:xs) = (if isDigit x then 1 else 0) + counta xs
定义的Enum
实例来缩短此时间,该实例将Bool
转换为True
,并将1
转换为{{1} }。
False
使用定义0
的{{1}}语句的正确方法是
counta (x:xs) = fromEnum (isDigit x) + counta xs
,
您的代码中存在多个问题
counta [] = []
返回一个列表,但您已声明counta :: [Char]->Int
,这表明它应该返回一个整数isDigit x
而不是isDigit(x)
let
块之外没有in
的情况下不能使用do
,也不能对变量进行突变