首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生成一个RecursionError

生成一个RecursionError
EN

Code Golf用户
提问于 2020-11-04 23:58:12
回答 2查看 284关注 0票数 -7

编写尽可能最短的代码,因为递归太深而导致错误。

python中的示例错误

代码语言:javascript
复制
RecursionError: maximum recursion depth exceeded

C中的示例错误

代码语言:javascript
复制
Segmentation fault

我的Python版本(15个字节):

代码语言:javascript
复制
def f():f()
f()
EN

回答 2

Code Golf用户

回答已采纳

发布于 2020-11-05 00:48:22

Dyalog Unicode,3 字节数 (SBCS)

代码语言:javascript
复制
F
F

一个1字节的头,由一个1字节的主体分隔成一行,它调用函数本身。这种类型的函数没有尾调用优化,所以当内存耗尽时,这会失败。

匿名lambdas确实有尾递归,但是我们可以防止这种情况:

代码语言:javascript
复制
{-∇⍵}1

在网上试试!

{}1 调用参数为1的匿名lambda:

 的论点

 对此进行回顾

- 否定结果

在内存耗尽之前,我们从来没有真正达到过否定,但我们需要它来避免优化。

票数 0
EN

Code Golf用户

发布于 2020-11-05 03:03:01

Python 3,15字节

代码语言:javascript
复制
exec('()'*9999)

在网上试试!

一个不使用函数的替代方案。不幸的是,Python2中不存在RecursionError,所以我们不能在exec中去掉方括号。

Python3.8,18字节

代码语言:javascript
复制
exec(s:='exec(s)')

在网上试试!

票数 2
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/214731

复制
相关文章

相似问题

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