首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏WebJ2EE

    【递归】:[转]Dijkstra was right — recursion should not be difficult

    Tail-call optimization 5. Solutions ‍1. Tail-call optimization You may have heard the term call stack. The answer is tail-call optimization. Let’s rewrite our factorial function to be eligible for tail-call optimization: function fact(acc, n) In some functional languages, tail-call optimization can also be achieved using continuation-passing

    72210发布于 2021-02-26
  • 来自专栏Java与Android技术栈

    Kotlin Coroutines Flow 系列(一) Flow 基本使用

    1.3.0 public fun <T> Flow<T>.launchIn(scope: CoroutineScope): Job = scope.launch { collect() // tail-call

    2.5K20发布于 2020-02-19
  • 来自专栏机器之心

    为什么Julia比Python快?因为天生理念就更先进啊

    用于这类递归问题的最快优化方法是 Tail-Call Optimization,Julia 语言可以随时添加这类优化。 但是 Julia 因为一些原因并没有添加,主要是:任何需要使用 Tail-Call Optimization 的案例同时也可以使用循环语句。 但是循环对于优化显得更加鲁棒,因为有很多递归都不能使用 Tail-Call 优化,因此 Julia 还是建议使用循环而不是使用不太稳定的 TCO。

    2.3K60发布于 2019-03-12
  • 来自专栏函数式编程语言及工具

    Scalaz(32)- Free :lift - Monad生产线

    Binding is done using the heap instead of the stack, * allowing tail-call elimination. */ sealed abstract

    64050发布于 2018-01-05
  • 来自专栏技术总结

    iOS进阶之传递消息

    这不是巧合,而是为了利用“尾调用优化”(tail-call optimization)技术,令“跳至方法实现”这一操作变得更简单些。

    1K60发布于 2018-05-22
  • 来自专栏韩曙亮的移动开发专栏

    【Kotlin 协程】Flow 异步流 ⑥ ( 调用 Flow#launchIn 函数指定流收集协程 | 通过取消流收集所在的协程取消流 )

    */ public fun <T> Flow<T>.launchIn(scope: CoroutineScope): Job = scope.launch { collect() // tail-call

    1.3K20编辑于 2023-03-30
  • 来自专栏C++ 动态新闻推送

    C++ 中文周刊 第130期

    .)); panic_impl(msg.c_str()); } 翻译: It’s not always obvious when tail-call optimization is allowed[ Panic better using modern C++: https://buildingblock.ai/panic [8] 翻译: It’s not always obvious when tail-call

    32010编辑于 2024-07-30
  • 来自专栏博文视点Broadview

    Go语言函数的参数和返回值

    当前编译器并未实现尾递归优化(tail-call optimization)。

    3.2K30发布于 2020-06-12
  • 来自专栏哈雷彗星撞地球

    RunLoop总结:RunLoop 与GCD 、Autorelease Pool之间的关系

    CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__(void *msg) { _dispatch_main_queue_callback_4CF(msg); asm __volatile__(""); // thwart tail-call

    1.4K51发布于 2018-08-22
  • 来自专栏Python数据科学

    如何用Python递归地思考问题?

    递归深度问题 Python不支持tail-call elimination(尾调用消除)。因此,如果我们使用了更多的桟帧,并且超过了默认的调用栈的深度,那么你将会引起栈溢出的问题。

    2.2K71发布于 2018-10-18
  • 来自专栏全栈程序员必看

    addr2line 动态库[通俗易懂]

    后多将不能正确得到程序栈信息; backtrace_symbols的实现需要符号名称的支持,在gcc编译过程中需要加入-rdynamic参数; 内联函数没有栈帧,它在编译过程中被展开在调用的位置; 尾调用优化(Tail-call

    3.5K20编辑于 2022-11-15
  • 来自专栏Android技术沉淀

    Kotlin 学习笔记(五)—— Flow 数据流学习实践指北(一)

    code 1 public fun <T> Flow<T>.launchIn(scope: CoroutineScope): Job = scope.launch { collect() // tail-call

    2.2K21编辑于 2022-12-21
  • 来自专栏Kubernetes

    kube-proxy源码分析

    natChains, existingNATChains[chain]) writeLine(natRules, "-X", chainString) } } // Finally, tail-call

    2.3K50发布于 2018-04-16
  • 来自专栏C++ 动态新闻推送

    C++ 中文周刊 2025-07-13 第187期

    <= int num_used_locs = 0; .... } 神秘调用参数用错,rating可以直接初始化的,或者range Performance of the Python 3.14 tail-call

    22500编辑于 2025-07-14
  • 来自专栏菲宇

    kubernetes之kube-proxy工作原理和源码分析

    natChains, existingNATChains[chain]) writeLine(natRules, "-X", chainString) } } // Finally, tail-call

    2.2K21发布于 2019-06-12
  • 来自专栏云原生实验室

    eBPF 的发展历史和核心设计

    Starovoitov, A. 2015a. bpf: allow bpf programs to tail-call other bpf programs.

    2.4K20发布于 2021-03-16
  • 来自专栏iOS 技术分享

    iOS - 老生常谈内存管理(四):内存管理方法源码分析

    )this), this); objc_overrelease_during_dealloc_error(); return 0; // allow rootRelease() to tail-call

    2.5K30发布于 2020-04-24
  • 来自专栏iOS开发~

    iOS_Effective Objective-C 20 编写高质量iOS与OS X代码的52个有效方法

    还有一个概念需要理解一下:“尾调用优化”(tail-call optimization)技术: ​ 如果某函数的最后一项操作是调用另外一个函数且不会返回值另作他用时,那么就可以运用“尾调用优化”技术。

    1.6K40编辑于 2022-07-20
领券