首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从另一个函数中读取整数列表,然后将其正方形。

从另一个函数中读取整数列表,然后将其正方形。
EN

Stack Overflow用户
提问于 2015-09-19 20:12:31
回答 1查看 58关注 0票数 2

我想构建一个名为Square(N)的函数。这个函数将接受来自我之前构建的一个函数的整数列表,然后它将返回它接收到的整数列表,现在只有每个数字被平方。

因此,如果读列表是[1,2,3,4],那么它应该返回[1,4,9,16]。我的职能如下:

代码语言:javascript
复制
Square(N) when N > 0 -> Square(digitize(N));
Square([]) -> [];
Square([H|T]) -> [H*H|Square(T)].

如果您想知道digitize(N)做什么,它会读取任何数字,然后将该数字的每一个数字显示在一个列表中。数字化功能如下:

代码语言:javascript
复制
digitize(N) when N < 10 -> [N];
digitize(N) -> digitize(N div 10)++[N rem 10].

编译函数时得到的结果是一个错误:

an error occurred when evaluating an arithmetic expression

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-19 22:12:13

将N(整数)传递给数字化函数后,它将返回一个列表。因此,您不能将返回的列表传递回同一个函数,并将其与整数0进行比较。您应该分解正方形函数,以便它调用另一个函数示例square_list来处理从数字化函数返回的列表。见下面的例子。

代码语言:javascript
复制
square(N) when N > 0 -> square_list(digitize(N)).

square_list([]) -> [];
square_list([H|T]) -> [H*H|square_list(T)].

digitize(N) when N < 10 -> [N];
digitize(N) -> digitize(N div 10)++[N rem 10].
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32672740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档