函数式编程

Oberon11 天前
数学·函数式编程·λ演算
从零开始的函数式编程(2) —— Church Boolean 编码[!quote] 关于λ表达式…… 详见λ表达式⚠ 本文导出自Obsidian,可能存在格式偏差(例如链接、Callout等) 本文地址:https://www.cnblogs.com/oberon-zjt0806/p/18710283
桦说编程20 天前
java·性能优化·函数式编程·并发编程
CompletableFuture 超时功能有大坑!使用不当直接生产事故!本文未经允许禁止转载!上一篇文章《如何实现超时功能(以CompletableFuture为例)》中我们讨论了 CompletableFuture 超时功能的具体实现,从整体实现来说,JDK21前的版本有着内存泄露的bug,不过很少对实际生产有影响,因为任务的编排涉及的对象并不多,少量内存泄露最终会被回收掉。从单一功能内聚的角度来说,超时功能的实现是没有问题;然而由于并发编程的复杂性,可能会出现 Delayer 线程延迟执行的情况。本文将详细复现与讨论 CompletableFuture 超时功能的大坑,同
桦说编程24 天前
java·性能优化·函数式编程·并发编程
如何安全发布 CompletableFuture ?Java9新增方法分析本文未经允许禁止转载。JDK9 中对于CompletableFuture做了新的增强,除了超时功能(orTimeout),还有面向继承、安全发布等相关方法。本文中,我们将详细分析各个新增方法,同时说明其安全发布的重要性,最后提出相关的实践原则。
桦说编程1 个月前
java·性能优化·函数式编程·并发编程
【异步编程实战】如何实现超时功能(以CompletableFuture为例)由于网络波动或者连接节点下线等种种问题,对于大多数网络异步任务的执行通常会进行超时限制,在异步编程中是一个常见的问题。本文主要讨论实现超时功能的基本思路以及CompletableFuture(之后简称CF)是如何通过代码实现超时功能的。
鱼樱前端1 个月前
vue.js·前端框架·函数式编程
Vue3之ref 实现源码深度解读Ref 是一种用于创建响应式引用的接口。它通过 value 属性来获取和设置内部值。当内部值发生变化时,依赖它的计算或组件会 automatisch 重新渲染。
RJiazhen2 个月前
前端·函数式编程
前端项目中的函数式编程初步实践相信大部分程序员这几年都或多或少听说过函数式编程(Functional Programming, 以下简称FP),而我生产开发中也通过践行FP的思想获益良多,借此文聊聊我所认为的前端项目中应该如何使用FP。
再思即可3 个月前
算法·lisp·函数式编程·sicp·scheme
sicp每日一题[2.77]Louis Reasoner tries to evaluate the expression (magnitude z) where z is the object shown in Figure 2.24. To his surprise, instead of the answer she gets an error message from apply-generic, saying there is no method for the operation magnitude on the typ
桦说编程3 个月前
后端·设计模式·函数式编程
把 CompletableFuture 当做 monad 使用的潜在问题与改进笔者在上一篇文章中分析了单子(Monad) 的一些特点和使用场景。实际上,Java 中 CompletableFuture 也可以当做 monad 使用:忽略CompletableFuture 提供的额外写操作(如complete,obtrudeValue等) ,我们知道 CompletableFuture 支持 completedFuture, thenApply, thenCompose 操作,这类操作实际上对应于Future monad 中定义的方法 pure, map, flatMap,此时Com
蜗牛快跑2133 个月前
前端·函数式编程·面向对象编程
面向对象编程 vs 函数式编程编程范式主要分为面向对象编程(Object-Oriented Programming,简称OOP)和函数式编程(Functional Programming,简称FP)。理解这两种编程范式,有助于我们选择合适的方式来解决问题,提高代码的可维护性和扩展性
大福是小强4 个月前
kotlin·函数式编程·lambda·语法·运算符重载·扩展函数
002-Kotlin界面开发之Kotlin旋风之旅在学习Compose Desktop中,以下Kotlin知识是必须的:在Kotlin中,使用val和var关键字来声明变量。val声明的变量是只读的,一旦赋值就不能再修改;var声明的变量是可变的。
再思即可4 个月前
算法·lisp·函数式编程·sicp·scheme
sicp每日一题[2.63-2.64]Each of the following two procedures converts a binary tree to a list.
老章学编程i4 个月前
java·开发语言·函数式编程·1024程序员节·lanmbda
Java函数式编程如果一个接口中只有一个抽象方法,且抽象方法的参数和返回类型与lambda表达式的参数和返回结果一致,那么就可以将接口类型作为lambda表达式的函数对象类型
安冬的码畜日常4 个月前
开发语言·javascript·ecmascript·函数式编程·js·functional·原生js
【玩转 JS 函数式编程_014】4.1 JavaScript 纯函数的相关概念(下):纯函数的优势(详见本专栏 【第 012 篇】 )(详见本专栏 【第 012 篇】 及 【第 013 篇】)纯函数的主要优点在于其没有副作用。调用纯函数时,除了对其传参外,无需担心任何事情。更重要的是,由于纯函数只对您提供的内容起作用,而与其他外部资源无关,从而可以确保函数不会产生任何问题或破坏任何原有逻辑。这还不是纯函数的唯一优势,本节将介绍纯函数的更多知识。
Dylanioucn4 个月前
java·开发语言·函数式编程
【编程进阶知识】Java 8 函数式编程接口全解析:Supplier、Runnable、Function、Consumer、Apply摘要: 在Java 8中,函数式编程接口如Supplier、Runnable、Function、Consumer和Apply(可能指BiFunction)在java.util.function包中扮演着重要角色。本文将深入探讨这些接口的区别、用途以及如何在实际编程中应用它们。通过具体的例子和代码片段,读者将学会如何在函数式编程中使用这些接口,以及如何将它们应用于CompletableFuture等场景中。文章最后,我们将以一个Excel表格的形式总结这些接口,并鼓励读者在评论区分享他们的见解和经验。
矢心4 个月前
前端·javascript·函数式编程
函数式编程---js的链式调用理解与实现方法链式调用是指在一个对象上连续调用多个方法,每个方法都返回当前对象,以便可以继续调用下一个方法。这种方式可以使代码看起来更加流畅和自然,就像在阅读一个句子一样,并且便于代码的维护和扩展
安冬的码畜日常5 个月前
开发语言·前端·javascript·函数式编程·tdd·fp·jasmine
【玩转 JS 函数式编程_006】2.2 小试牛刀:用函数式编程(FP)实现事件只触发一次前言 上一篇围绕【如何只让事件逻辑触发一次】给出的 7 种实现方案都不甚理想,这一节来看看函数式的解法究竟有何高明之处。
请不要叫我菜鸡5 个月前
大数据·分布式·后端·mapreduce·函数式编程·容错性
mit6824-01-MapReduce详解MapReduce是一个在多台机器上并行计算大规模数据的软件架构。主要通过两个操作来实现:Map 和 Reduce:用于大规模数据集(大于1TB)的并行运算。
安冬的码畜日常5 个月前
开发语言·前端·javascript·ecmascript·函数式编程·fp·functional
【玩转 JS 函数式编程_004】1.4 如何应对 JavaScript 的不同版本上面介绍的语言特性都很不错,但正如前文提到的那样,适用性最广的 JavaScript 的版本,往往并不是最新的 ES13,而更有可能是早期的 JS5。这当中 Node.js 算个例外。它基于 Chrome 浏览器的 V8 高性能 JavaScript 引擎。该引擎已经实现了多项 ES13 特性。尽管如此,截至目前(2023 年 5 月),V8 引擎对 ES13 特性的覆盖率仍达不到 100%,总会有一些特性缺失(更多 Node.js 和 V8 信息,详见 https://nodejs.org/en/lea
再思即可5 个月前
编程·lisp·函数式编程·sicp·scheme
sicp每日一题[2.31]Abstract your answer to Exercise 2.30 to produce a procedure t r e e − m a p tree-map tree−map with the property that s q u a r e − t r e e square-tree square−tree could be defined as
canonical_entropy5 个月前
后端·函数式编程
函数式编程为什么有利于解耦(Decouple)最近面试中发现很多人对于函数式编程的理解就是Lambda表达式和flatMap/map/join这种集合处理函数,对于函数式编程为什么有用,在什么场景下有用只有很模糊的感觉。在本文中,我就简单介绍一下函数式编程的思想以及在我们日常编程中如何应用函数式编程来实现逻辑解耦,函数式编程在哪些方面提供了对于面向对象编程的一种有益的补充。