函数式编程

桦说编程14 天前
java·性能优化·函数式编程
写时复制COW核心原理解读写时复制(COW/CopyOnWrite)机制是一种以空间换时间的读写分离策略。当进行写操作时,COW机制会触发一次深拷贝,将原始数据复制一份,然后在新的数据副本上进行修改。最后,通过原子性指针切换将引用指向新的数据副本。这种机制的优点是读操作不需要加锁,可以并发执行,从而提高了读操作的性能。常见的Java中的CopyOnWriteArrayList就是基于COW机制实现的,它在多线程环境下可以高效地进行读操作。
桦说编程18 天前
java·后端·函数式编程
配置快照实现之持久化数据结构在微服务架构中,链路追踪的主要目的是帮助开发者和运维人员了解请求在各个服务之间的流动情况,从而更容易地进行故障排查和性能优化。配置快照在这个过程中可以发挥重要作用,原因如下:
石金龙20 天前
函数式编程·ramda
用 Ramda 做简易日历仓库地址 github.com/ShiJinlong1…七列。七行,一行表头 一二三四五六日;六行日期。
异常君24 天前
java·代码规范·函数式编程
Java 双冒号(::)操作符实战解析与类型推断机制Java 8 引入的双冒号操作符让代码更简洁高效,本文深入解析其原理和应用场景,帮你彻底掌握这一特性。
安冬的码畜日常2 个月前
开发语言·前端·javascript·重构·函数式编程·cps风格·延续传递风格
【玩转 JS 函数式编程_016】DIY 实战:巧用延续传递风格(CPS)重构倒计时特效逻辑写在前面 都说念念不忘,必有回响。写过的文章也好,看过的视频也罢,其实只要用心积累,不必刻意去死记硬背,这些看似分散的碎片都会在未来某个不经意的瞬间串联起来——人的大脑就是如此神奇。本篇分享就是源于本专栏的一次分享,以及几天前的一个教学视频。函数式编程的思想和实践其实离我们的日常工作和生活也并没有想象中的那么遥远。
zidea3 个月前
rust·ai编程·函数式编程
Rust 闭包:捕获环境的魔法函数今天来聊聊 Rust 语言中一个非常强大且有趣的特性:闭包 (Closures)。你可能在其他编程语言听说过闭包这个词,简单来说,闭包就像一个“加强版”的函数,不仅能执行代码,还能“记住”并访问定义时所处的环境中的变量。
独泪了无痕3 个月前
后端·函数式编程
Optional 使用指南:彻底告别 NPE到目前为止,臭名昭著的 NullPointerException 是导致 Java 应用程序失败的最常见原因。以前,为了解决空指针异常,Google公司著名的Guava项目引入了 Optional 类,Guava 通过使用检查空值的方式来防止代码污染,它鼓励程序员写更干净的代码。受到 Google Guava 的启发,Optional 类已经成为 Java 类库的一部分。
doodlewind3 个月前
typescript·编程语言·函数式编程
通过 TypeScript 类型体操学习日语语法尽管一个用于人类交流,一个服务于机器指令,自然语言和编程语言却共享着相似的基本原理。两者均由语法规则、结构限制和组合方式所定义。
谦谦橘子4 个月前
前端·javascript·函数式编程
rxjs原理解析rxjs是一个函数式编程的工具库,即推崇纯函数的开发理念。纯函数的概念这里不过多展开,读者可以自行查阅。简单理解就是不依赖this,稳定的输入输出。
桦说编程4 个月前
后端·函数式编程
【硬核总结】如何轻松实现只计算一次、惰性求值?良性竞争条件的广泛使用可能超过你的想象!String实际上是可变的?惰性求值和单次计算是两种优化策略,常常结合使用以提高程序的效率。惰性求值推迟计算直到结果确实需要,避免不必要的资源消耗;单次计算则确保结果一旦计算后可重复使用,避免重复计算。两者结合能实现按需加载和高效复用,广泛应用于函数式编程、大数据处理等领域。
Oberon5 个月前
数学·函数式编程·λ演算
从零开始的函数式编程(2) —— Church Boolean 编码[!quote] 关于λ表达式…… 详见λ表达式⚠ 本文导出自Obsidian,可能存在格式偏差(例如链接、Callout等) 本文地址:https://www.cnblogs.com/oberon-zjt0806/p/18710283
桦说编程5 个月前
java·性能优化·函数式编程·并发编程
CompletableFuture 超时功能有大坑!使用不当直接生产事故!本文未经允许禁止转载!上一篇文章《如何实现超时功能(以CompletableFuture为例)》中我们讨论了 CompletableFuture 超时功能的具体实现,从整体实现来说,JDK21前的版本有着内存泄露的bug,不过很少对实际生产有影响,因为任务的编排涉及的对象并不多,少量内存泄露最终会被回收掉。从单一功能内聚的角度来说,超时功能的实现是没有问题;然而由于并发编程的复杂性,可能会出现 Delayer 线程延迟执行的情况。本文将详细复现与讨论 CompletableFuture 超时功能的大坑,同
桦说编程5 个月前
java·性能优化·函数式编程·并发编程
如何安全发布 CompletableFuture ?Java9新增方法分析本文未经允许禁止转载。JDK9 中对于CompletableFuture做了新的增强,除了超时功能(orTimeout),还有面向继承、安全发布等相关方法。本文中,我们将详细分析各个新增方法,同时说明其安全发布的重要性,最后提出相关的实践原则。
桦说编程5 个月前
java·性能优化·函数式编程·并发编程
【异步编程实战】如何实现超时功能(以CompletableFuture为例)由于网络波动或者连接节点下线等种种问题,对于大多数网络异步任务的执行通常会进行超时限制,在异步编程中是一个常见的问题。本文主要讨论实现超时功能的基本思路以及CompletableFuture(之后简称CF)是如何通过代码实现超时功能的。
鱼樱前端6 个月前
vue.js·前端框架·函数式编程
Vue3之ref 实现源码深度解读Ref 是一种用于创建响应式引用的接口。它通过 value 属性来获取和设置内部值。当内部值发生变化时,依赖它的计算或组件会 automatisch 重新渲染。
RJiazhen6 个月前
前端·函数式编程
前端项目中的函数式编程初步实践相信大部分程序员这几年都或多或少听说过函数式编程(Functional Programming, 以下简称FP),而我生产开发中也通过践行FP的思想获益良多,借此文聊聊我所认为的前端项目中应该如何使用FP。
再思即可8 个月前
算法·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
桦说编程8 个月前
后端·设计模式·函数式编程
把 CompletableFuture 当做 monad 使用的潜在问题与改进笔者在上一篇文章中分析了单子(Monad) 的一些特点和使用场景。实际上,Java 中 CompletableFuture 也可以当做 monad 使用:忽略CompletableFuture 提供的额外写操作(如complete,obtrudeValue等) ,我们知道 CompletableFuture 支持 completedFuture, thenApply, thenCompose 操作,这类操作实际上对应于Future monad 中定义的方法 pure, map, flatMap,此时Com
蜗牛快跑2138 个月前
前端·函数式编程·面向对象编程
面向对象编程 vs 函数式编程编程范式主要分为面向对象编程(Object-Oriented Programming,简称OOP)和函数式编程(Functional Programming,简称FP)。理解这两种编程范式,有助于我们选择合适的方式来解决问题,提高代码的可维护性和扩展性
大福是小强8 个月前
kotlin·函数式编程·lambda·语法·运算符重载·扩展函数
002-Kotlin界面开发之Kotlin旋风之旅在学习Compose Desktop中,以下Kotlin知识是必须的:在Kotlin中,使用val和var关键字来声明变量。val声明的变量是只读的,一旦赋值就不能再修改;var声明的变量是可变的。