LWN:Elisp里另一种模式匹配条件执行方式!

华为OD机试真题 2026.11.4. 新系统 【河流水系流量评估】 华为OD机试真题 新系统【河流水系流量评估】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题 【河流水系流量评估】多语言题解。 阅读详情

关注了就能看到更多这么棒的文章哦~

An alternate pattern-matching conditional for Elisp

By Jake Edge
March 1, 2024
Gemini translation
https://lwn.net/Articles/961682/

我们在十一月份看到过 的关于在 Emacs Lisp(Elisp)中使用 Common Lisp 特性的(非常)长的讨论,带来的结果之一就是开始了把 Common Lisp 从 Emacs 中移除掉。Richard Stallman 开始了对使用 Common Lisp 库(cl-lib)的 Emacs 中 Elisp 的一些重写,以减少维护 Emacs 本身所需的认知负荷。自那时起,他努力简化 Elisp 的工作,通过添加一个新的模式匹配条件,希望替换长期以来他认为过于复杂的pcase。

复杂之处

在十一月中旬,Stallman指出,他发现 pcase 定义的他称为“little language”的逻辑“简洁到让人难以理解”。他认为解决相同的一组问题,采用的把更简单的 Elisp 构造,比如cond和let 结合起来的做法,是“冗长且麻烦的”,但 pcase 已经将对简洁性的渴望推到了一个不可取的极端。他说,这给所有不得不维护使用 pcase 的 Emacs 开发人员带来了成本,因此他决定将一些 pcase 特性调整到其他构造(constructs)中。

可预见地,这引发了一系列长篇讨论(emacs-devel 邮件列表的常见情况)讨论是否需要 pcase 的替代方案,替代方案可能是什么样子,等等。Stallman新开了一个子线程来研究他对一个新宏 cond* 的想法,它将提供一个更简单的模式匹配构造,仍然比使用“老式的 Lisp”更简洁。他的新宏旨在结合条件 cond 形式,它处理检查多个不同值–类似于其他语言的(switch构造)与 let ,它在受限范围内临时把值绑定到变量。 pcase 和 cond* 都旨在为 Elisp 提供一个ML样式的模式匹配条件机制。

一个简单的 pcase 示例可以展示出这些构造的一般风格,但两者能做的功能要更多,包括模式匹配和解开列表(pulling lists)和其他数据结构,这就是“解构(destructuring)”。这个例子,摘自 pcase 文档,它处理了多种不同类型(例如字符串,符号)的返回代码,为每个生成了一个适当的消息:

(pcase (get-return-code x)
  ;; string
  ((and (pred stringp) msg)
   (message "%s" msg))

  ;; symbol
  ('success       (message "Done!"))
  ('would-block   (message "Sorry, can't do it now"))
  ('read-only     (message "The schmilblick is read-only"))
  ('access-denied (message "You do not have the needed rights"))

  ;; default
  (code           (message "Unknown return code %S" code)))

Stallman 将他的方法描述为试图“避免 pcase 的应有尽有所导致的笨拙”。自然地,这引发了对 pcase 的进一步争论。例如,Michael Heerdegen说:“在我看来‘pcase’非常接近完成这个任务的最佳解决方案。”

到了十二月中旬,Stallman询问了 cond* 所需的特性“以便很少遇到无法干净地取代 pcase 的情况”。这个对话发生在 pcase 替换讨论的另一个分支中,这使得它有点难以跟进。在这个线程中,其他人正在与 Stallman 一起调整 cond* ;同样,其中有很多有帮助的建议和澄清疑问,还夹杂着一些抱怨。然而,Stallman 显然正在推进这个功能。

在十一月中旬,Alan Mackenzie 引发了一个问题,似乎自 2010年添加 pcase 以来就一直存在的问题:文档。他指向了他在 2015 年发表的一个帖子,描述了 pcase 文档存在的问题;当时已经解决了其中很多问题,但还有一个正在进行的工作,由 Jim Porter 领导来改进这个宏的文档。

Porter 列举了需要关注的多个方面,包括将用于模式匹配和解构的反引号("`")运算符的呈现提前放在 pcase 文档字符串(doc string)中。正如 Mackenzie 所指出的, pcase 令人困惑的一点是它使用了两个标点符号,即反引号和逗号(","),这两个标点符号在 Elisp 宏定义中已经有了确定的用法:“在 pcase 之前,这两者有明确的含义。但是此后它们变得高度依赖上下文。”

对于 Porter 的帖子有一些回应,大多数都赞成他的观点;最终,Emacs 共同维护者 Stefan Kangas将该帖子复制给了前 Emacs 维护者、 pcase 的开发者 Stefan Monnier。Monnier也基本上同意;他认为文档字符串实际上并不是详细介绍反引号信息的地方,尽管进行一些语言上的重新调整是有道理的。Stallman对Porter的其他建议提出了异议,可能在“《[在 Emacs Lisp 中进行编程的介绍》](https://www.gnu.org/software/emacs/manual/html_node/eintr/index.html)”中提到 pcase 。"我们不应该鼓励人们学习 Emacs Lisp 来使用 pcase 。""

初稿

一月中旬,Stallman发布了cond*的初稿,要求人们进行更多的测试,期待“富有建设性的意见、错误报告、补丁和建议”。Andrea Corallo询问了关于 cond* 的一个特定特性:

一些 cond* 子句为什么要让变量绑定在这个子句之外(在整个 cond* 结构范围内)的原因是什么?乍一看对我来说在 Lisp 术语中这种做法并不是很常见。

Corallo 指的是 bind* 子句,它可以出现在 cond* 的主体中的任何地方,以用于创建变量的绑定,其作用域并不在包含它们的 bind* 结束的位置。而是从那一点开始生效,这些变量的作用域就是 cond* 的主体,这与 Lisp 的通常期望有些不一样。

(cond*
     (CONDITION FORM)
     ((bind* (x 42)))  ; create a binding of 42 to x
     (CONDITION-using-x FORM-using-x)
     ...)

正如 Távora指出的,其他人已经询问过这种行为,但他“不确定最终是否澄清了”。他还想知道 cond* 是否可以使用 pcase 来构建;如果它是 pcase 功能的一个严格子集,可能有助于这样做。这“实际上可能会为‘cond*’的采用路径(尽管这条路径对于某些人来说仍然是有疑问的)提供便利”。但是 Stallman并不这样看待;他列举了他认为 cond* 的优势,并表示他打算将这个新的宏添加到 Emacs 中:

与 pcase 相比,cond*具有四个基本优势:可以使绑定覆盖整个主体、匹配各种数据对象的模式(不一定是相同的)、在子句中使用普通的 Lisp 表达式作为条件、以及[能够]进行绑定并继续使用进一步的子句。

我将进行更多测试,然后让 cond* 功能上线。

Adam Porter要求Stallman 重新考虑将 cond* 安装到 Emacs 中的做法,建议他应该考虑增强 pcase 而不是添加一整个新的基础设施让开发人员来学习。 pcase 的抱怨之一是学习的负担;“需要学习 pcase 和 cond* 这两者了,这无助于减轻人们的学习成本。”Adam Porter 指出 pcase 可以处理 Stallman 所列举的许多优势,因此可能有一条增强 pcase 的路径:

您编写 cond* 的陈述理由包括了 pcase 的一些局限性。其中一些,例如文档,已经有志愿者站出来解决。其他的问题也可以通过各种方式解决。我已经提出了一些建议,但您没有解释拒绝它们的原因。

不出所料,Stallman不同意:

如果 pcase 对于某些特定任务缺少功能,通过添加一些功能来解决问题将会很容易。然而,pcase 的问题在于它对于它所做的工作来说具有了太多的功能。cond* 可以用更少的功能做同样的工作,因为它们更好地协同工作。

ELPA?

Kangas 表示他并未认真关注讨论,但对“计划安装'cond*' 的做法”感到惊讶,“否则我会更早地发表意见”。添加 cond* 将导致 Emacs 的维护工作变得更加困难,因为 pcase 并没有被淘汰,因此将会有“不止一个相对复杂的宏,而是变成了两个宏”需要他了解和理解。如果 cond* 带来了实质性的好处,那么这样做可能值得,但他并不认同;“我所看到的只是'pcase'的一种版本。”因此,他建议为GNU Emacs Lisp Package Archive(ELPA)创建一个新包,这将提供“探索现有宏的替代版本的良好途径”。

Kangas 认为没有全面替换 pcase 的计划是一个好事。这样避免了自然而然会导致的大量代码变动和错误。但 Mackenzie持相反意见;他认为完全替换 pcase 将是“一举改善我们代码的可读性和可维护性”的良好目标。他认为将其放入 ELPA 库中“意味着它永远不会有所进展,只会被遗忘”;而在 Emacs 主分支中开始功能分支并最终合并将是更好的做法。

与其他几人一样,Monnier认为 cond* 只是又进一步复杂化了 Elisp。另一方面,他说,对他来说反对它有点虚伪:

所以,我并不是非常热衷于添加这样一个新形式,但我作为多年来引入 ELisp 中几种这样的新构造的责任人,我感觉有点像一个褒贬不一的人。

所以,与其反对它,我更愿意指出一些我认为可以改进的事情(或令我不快的事情)。

随后 Stallman 和 Monnier 就 cond* 以及它与 pcase 的重叠(以及两者可能如何“达成妥协”)进行了一连串的讨论,以及关于传统 cond 形式在绑定条件内部存在的一些不足的讨论等。讨论的大部分围绕着 Monnier 的担忧展开,他认为两种构造有重叠但仍有不同的模式语言:

[…]我看到一个相当丰富但硬编码的模式语言,与 Pcase 相比,这似乎是一个倒退,Pcase 的模式语言只是由几个基本原语组成的(其他部分是通过'pcase-defmacro'定义的)。最糟糕的是,两种模式语言非常相似,但我看不出有任何好的理由让它们不同。

Monnier强调Stallman 可以直接重用 pcase 的低级模式语言用于 cond* ,这将带来许多好处:“工作量更小,代码重复更少,文档重复更少,对于程序员学习的内容也更少。而且很可能您会随后完善 Pcase,这样每个人都会受益。”

截至目前仍在进行讨论,尚不清楚 Stallman 将如何处理模式语言的问题。Monnier称,通过相应的补丁可以很容易将 match* 形式更改为使用 pcase 机制;相关的补丁已经被发送。Mackenzie反对 cond* 使用 pcase 的模式处理方式,部分原因是因为缺乏对低级 pcase 机制的文档说明。Alfred M. Szmidt希望最终 pcase 可以被编写成使用 cond* ,而不是相反,但 Monnier表示这在技术上是不可行的。

添加 cond*

一月底,Emacs 的共同维护者 Eli Zaretskii 和 Kangas宣布 cond* 将被安装到 Emacs 核心中,作为 pcase 的替代方案;然而,并没有放弃 pcase ,因为它被认为是一种“风格偏好问题”。在帖子中,Kangas 明确表示政治上而不是严格的技术考虑是决策过程的一部分:

作为维护者,我们的首要责任是确保我们都能够共同努力,团结在同一个旗帜之下。我们项目的成功取决于此。因此,我们最不希望做的事情是排斥任何一组贡献者,无论人数多少。

我们相信这比对 cond* 或 pcase 的论证更重要。简单的事实是我们拥有不同的背景和经验,这些经历往往使我们位于这个讨论的两边。这种多样性是一种力量,而不是弱点。

尽管如此,显然仍然有一些人对 14 年前 pcase 被安装到 Emacs 中感到不满,至少对于 Mackenzie 来说,是这样的。他认为维护者选择的中庸之道不会有助于解决他和其他人在理解一些 pcase 使用方面遇到的问题;他仍然主张使用 cond* 进行全面替换。另一方面,Stallman认为不应该替换=pcase=,但“希望避免在 Emacs 中使用 pcase,应该支持 cond*”。当然,这一决定并没有阻止另一场关于“ cond* 与 pcase ”的讨论持续展开,自然也一直在进行中。

一月底,Stallman表示他几乎准备好将代码提交到Emacs Git存储库的代码,尽管截至目前尚未提交。Zaretskii要求同时将文档添加到Elisp参考手册,因此这可能会拖慢进程。不过过不了多久, cond* 应该会出现在 Emacs 中,因此将会有两种方式来进行模式匹配和解构能力的代码实现——无论这是好事还是坏事。

全文完
LWN 文章遵循 CC BY-SA 4.0 许可协议。

欢迎分享、转载及基于现有协议再创作~

长按下面二维码关注,关注 LWN 深度文章以及开源社区的各种新近言论~

92232bf66ef75c01882a817d4dcdaa10.jpeg

【ComfyUI专栏】ComfyUI 常用工作流下载与分享网址 首先我们来分享第一个网站,Openart 网站,这个网站同时也能提供比较多的其他类型。但是如果希望下载工作流,我们可以访问到如下的这个站点。作为ComfyUI的学习用户来说,我们通常需要借助他山之石来帮助我们快速成长,因此我们需要找到能够分享和下载的网址。,当前网站是综合性网站,在网站中可以下载各种不同的类型,其中工作流只是可以下载的非常小的部分。这个网站也可以浏览不同的工作流,这个工作流的地址和访问如下的站点。 阅读详情

相关推荐

AutoCAD Plant 3D自定义零件库实战:手把手教你用Python创建参数化槽式三通

本文详细介绍了如何利用Python脚本在AutoCAD Plant 3D中创建参数化槽式三通组件,从API原理到实战开发,帮助用户构建高效的自定义零件库。通过Python装饰器系统控制零件属性和行为,实现几何建模、参数管理和规格编辑器集成,提升工业管道设计的标准化和效率。

weixin_28267011的博客 331

231_emacs lisp cl-lib初探

完整的common lisp的学习集合整理如下: https://github.com/GreyZhang/g_lisp 继续spacemacs的学习,确切来说,现在的学习扩展到了emacs的实现了。上一次,我们的分析到了如下代码: 接着,算是又一次不顺利。因为,这里又遇到了好几个不熟悉的东西。也是逐个击破吧!首先,探索一下cl-lib。为了了解相应的功能,先去看...

小灰笔记 1650

基于虚拟阻抗重塑的构网型VSG变流器SISO序阻抗建模与宽频振荡抑制策略分析(面向高比例新能源并网场景)

本文深入探讨了基于虚拟阻抗控制的构网型VSG变流器SISO序阻抗建模技术及其在高比例新能源并网场景中的宽频振荡抑制策略。通过虚拟阻抗重塑,有效改善了变流器的阻抗特性,解决了次/超同步频段的振荡问题,并提供了参数设计、阻抗扫频验证等实用技巧,为新能源并网系统的稳定性提供了可靠解决方案。

weixin_29268385的博客 249

Elisp学习记录

Elisp学习记录 (by hanlray(at)gmail.com)一个symbol是一个具有唯一名字的object,它有四个cell,每个cell引用另一个object: print name value function property listlambda expression (lambda (arg1 arg2 &opt

hansoft's blog 2269

【LDLTS解析】从重叠峰到精准参数:拉普拉斯深能级瞬态光谱如何重塑半导体缺陷分析

本文深入解析了拉普拉斯深能级瞬态光谱(LDLTS)技术如何革新半导体缺陷分析。针对传统DLTS难以分辨重叠峰的痛点,LDLTS通过拉普拉斯逆变换对高精度电容瞬态曲线进行数学解卷积,成功分离发射率相近的缺陷信号,实现从模糊宽峰到精准独立峰的转变。该技术不仅大幅提升了缺陷激活能和捕获截面等关键参数的提取精度,更推动分析范式从经验拟合转向第一性原理,为先进半导体工艺开发与良率提升提供了强大的精准诊断工具。

weixin_29224309的博客 273

科研指南:IEEE期刊LaTeX/Word模板下载与使用全解析

本文详细解析了IEEE期刊LaTeX/Word模板的下载与使用技巧,帮助科研人员高效完成论文排版。从官方模板获取入口到LaTeX文档结构配置,再到Word样式管理与常见问题解决方案,全面覆盖投稿准备的关键步骤。特别针对数学公式、参考文献和图片处理等难点提供实用建议,助力学术写作规范化。

weixin_28396629的博客 566

LWN:在Emacs中使用Common Lisp!

关注了就能看到更多这么棒的文章哦~Using Common Lisp in EmacsBy Jake EdgeNovember 14, 2023ChatGPT translationhttps://lwn.net/Articles/951090/Lisp 是仍在使用的最古老的编程语言之一,但在其超过 60 年的历史中已经演变成多个变种。其中两个较为突出的后代分别是Common Lisp和Emac...

Linux News搬运工 1138

如何用Python打造PubMed API客户端:科研文献检索自动化实践

PubMed提供了官方的Entrez E-utilities API接口,支持程序化检索文献,但直接调用API需处理请求重试、参数封装、数据解析等问题。批量获取文献ID及结构化详情(标题、作者、DOI等)内置重试机制,应对网络波动或API限流统一数据输出格式,便于后续分析(如文献计量、AI文本处理)灵活适配不同检索需求(如指定数据库、结果数量)本文实现的PubMed API客户端,通过封装API请求、重试机制、数据解析,让科研文献检索从“手动点击”变为“代码自动化”。

ASKCOS博客 358

Spring AI + GPT-5.5 + Ollama 配置教程:Base URL、超时与流式调用

由于不同 Spring AI、Spring Boot 小版本之间仍可能存在差异,创建项目时应检查 Spring Initializr、Spring AI BOM 和官方兼容矩阵,不要直接复制旧教程中的 Starter 名称和版本号。多人项目最好隔离不同客户端,并在脱敏前提下记录最终 URL、状态码、请求耗时、请求 ID 和模型 ID。Spring AI 接入模型 API,至少要同时确认 Starter、Base URL、请求路径、API Key、模型 ID、连接超时、读取超时和流式客户端这 8 项。

2601_95893075的博客 223

yolov8涨点系列之轻量化主干网络替换

yolov8涨点系列之轻量化主干网络替换,以EfficientVit为例

zhang1379的博客 2887

HX711重量传感器原理图设计,已量产(压力传感器)

最近调通了一款针对家用、物联网场景的重量传感套件,核心用了 HX711 这颗经典的称重 AD 芯片,还加了用户最需要的 “一键校准” 功能 —— 之前帮朋友做家用米桶余量报警时,用户总吐槽校准步骤太繁琐,这次的方案把操作简化到只按一个键,试下来体验好了不少。正好拆解下这套硬件的设计逻辑,供做同类产品的朋友参考。

不脱发的程序猿 365

【JVM】对象内存布局

HotSpot JVM 中,Java 对象内存布局由对象头(12字节,含Mark Word与压缩Klass Pointer)、实例数据及对齐填充构成,总大小为8字节倍数。对象头支持锁状态动态复用,指针压缩使引用仅4字节,但堆超32GB时失效。实例字段按类型优先级重排序以减少间隙,最小对象大小为16字节。通过JOL工具可精准验证布局,理解锁机制、GC、伪共享等底层行为。

2301_79732484的博客 149

欺诈文本分类微调(一):基座模型选型

通义千问Qwen2具有0.5B、1.5B、7B、72B等一系列参数大小不等的模型,我们需要做的是从大到小依次测试每个模型的能力,找到满足自己需要的最小参数模型。依1.5B和1.5B-Instruct的主要区别:按照官方文档,前者是预训练模型,后者是经过指令微调的模型。

golfxiao的专栏 2655

V8 机制、手写核心函数与 TypeScript 类型体操

或固定初始化(如数组先定长、对象先给全字段)保持类型与形状稳定;这些都比"换框架"更基础。只能处理纯数据(丢函数、Date、RegExp、循环引用报错)。生产级深拷贝要处理:原始值短路、循环引用、V8(Chrome / Node 的 JS 引擎)不是"解释一行跑一行"那么简单,它用。图:V8 执行流程——解释执行 + 热点优化,优化失败会 Deopt 回退。JS 内存自动管理,但"自动"不等于"不会漏"。是"固定间隔最多执行一次"。手写 Promise 是"懂异步"的试金石。是"停下后才执行最后一次",

qq_38468358的博客 328

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Java EE 进阶:8.MyBatis 操作数据库(入门)(第一弹)

Java EE 进阶:8.MyBatis 操作数据库(入门)(第一弹)

要努力去发光,而不是被照亮~ 115

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Spring Boot 数据源与 MyBatis(-Plus) 自定义配置详解

本文详解 Spring Boot 中单数据源环境下 HikariCP 与 MyBatis-Plus 的自定义配置。通过手动声明 SqlSessionFactory,实现下划线转驼峰、日志输出、一级缓存策略等精细化控制。结合 HikariCP 核心参数调优(如最大连接数、连接生命周期),确保高性能与稳定性。适用于仅需访问单一数据库的场景,避免多数据源复杂性,兼顾性能与可维护性。

BADAO_LIUMANG_QIZHI的博客 194

LeetCode Hot 100 二叉树专题(二)3 题(Java)

本篇文章共 3 题:543. 二叉树的直径、102. 二叉树的层序遍历、108. 将有序数组转换为二叉搜索树。 每道题都统一按「① 题目分析 & 解题思路 → ② 常见解法(附代码)及讲解 → ③ 知识点总结」的顺序组织;代码使用 Java 编写,节点定义沿用 LeetCode 默认的 TreeNode。

2401_88612756的博客 365

Decorator

TaskDecorator 是异步场景下"跨线程传递上下文"的标准方案,主要用于传递 MDC、用户信息、数据源路由等上下文数据,核心价值是让异步任务的日志链路不中断、业务上下文不丢失。TaskDecorator 是 Spring 提供的一个钩子接口,用于在异步任务执行前对 Runnable 进行包装,常用于跨线程传递上下文。如果你在项目中遇到具体的异步上下文传递问题,可以把代码贴出来,我帮你给出最合适的 Decorator 方案 👍。✅ 核心能力:在线程切换时,把"父线程的上下文"搬到"子线程"

wlwork66的博客 104

数据库乐观锁深度解析:MySQL、PostgreSQL 实战 + Spring Boot 集成指南

Oracle 提供了ORA_ROWSCN伪列(System Change Number),记录最后修改行的 SCN,类似 PostgreSQL 的xmin。实践中通常仍使用 version 字段方案,逻辑与 MySQL 完全相同。-- Oracle:通过 ORA_ROWSCN 实现乐观锁-- 更新时比对 SCN// 自定义注解// AOP 切面@Aspect@Component@Slf4jtry {

yjc_1111的专栏 397

JDK 下载安装:装完 Java 提示「不是内部或外部命令」?环境变量没配

JDK 是写 Java 程序必须装的东西。它包含运行 Java 的虚拟机(JRE)和编译 Java 的编译器(javac)——装了它,能跑、.java文件能编译成可执行程序。免费,学习和小规模生产都不花钱。

科小怪的博客 626

C++ 多态详解:作用、原理与实战用法

多态是C++面向对象的核心特性,通过虚函数实现运行期动态绑定,使同一接口在不同对象上表现出不同行为。其核心作用包括统一接口、提升可扩展性、降低耦合、支持运行时分派与批量处理。实现依赖虚函数表(vtable)和虚指针(vptr),需注意虚析构函数、对象切片等陷阱。相比编译期多态(模板),运行期多态灵活性高但有调用开销。合理结合两者,可兼顾代码的灵活性与性能,是构建可扩展、低耦合系统的关键。

2402_85743155的博客 376

java框架大全

java框架大全

qq_39326137的博客 183

Java 多态 学习笔记

多态是面向对象编程的重要特性,指同一操作作用于不同对象时产生不同行为。其核心在于“父类引用指向子类对象”,结合方法重写实现运行时动态绑定。多态使代码更灵活、可扩展,如用Person p = new Student();统一处理各类人员注册,无需修改调用逻辑。但多态无法直接调用子类特有方法,需通过instanceof判断并强制转换。编译时看左边(类型),运行时看右边(实际对象),实现解耦与维护便利。

AA_AA114514的博客 349

SecureRandom做随机源,这个Java随机字符串工具类有3个方法

本文分享一款JDK17环境下的Java随机字符串工具类,内置3个开箱即用的方法,全部采用SecureRandom加密安全随机源,不存在弱随机、可预测、取模偏差等问题。工具类支持默认62字符集随机串、纯数字随机串、自定义字符集随机串三种生成模式,支持Unicode码点级别的字符集处理,兼容Emoji等增补字符,边界处理严格,异常信息明确,适合验证码、邀请码、盐值、随机口令、短链码等场景,源码可直接复制使用。

Java后端 | AI智能体应用实战派 | 电脑技能行家 294

Java实现批量线段相交检测(跨积判定+扫描线优化与踩坑复盘)

【代码】Java实现批量线段相交检测(跨积判定+扫描线优化与踩坑复盘)

m0_64476639的博客 319

ubuntu安装hadoop系统

本文详细介绍了基于VMware克隆虚拟机搭建三节点Hadoop分布式集群的全过程:使用同一Ubuntu镜像克隆出master、worker1、worker2三台虚拟机,依次配置主机名、固定IP(如192.168.82.10/11/12)、SSH服务及免密登录,确保节点间网络互通。随后安装Java,下载配置Hadoop并分发至各节点,最终初始化启动集群,验证其存储与计算功能,实现高效的大数据环境部署。

qq_43592674的博客 322

Agent 状态栏在上下文中的具体位置

Agent状态栏以user角色消息形式追加至上下文末尾,而非修改system消息,避免破坏KVCache。此举仅为API技术实现,内容由框架自动生成,非真实用户输入,通过<agent_status>标签标识,确保模型获取最新状态且不影响缓存。该设计遵循“动态信息追加、静态信息固定”原则,实现高效、低延迟的状态传递。

lj1109053360的专栏 71
上一篇: LWN:QUIC扩展演进不够快!
下一篇: LWN:MySQL以及MariaDB在Fedora 40中的变化!
LinuxNews搬运工
博客等级 码龄7年 438粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值