请用纯函数式风格重写以下代码,所有函数必须无副作用、不可变输入、显式返回——禁止使用for循环→改用map/filter/reduce或递归;所有变量名须符合语义化驼峰(如userEmailList而非arr1);顶层函数必须有TypeScript类型签名。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜
你想让kimi把一段逻辑正确但结构混乱、命名随意、缺乏抽象的代码,变成符合函数式/面向对象/声明式等编程范式风格的优雅实现,而不是简单地修格式或加注释。明确指定目标范式与约束条件
在Prompt开头就用一句话锁定范式类型,例如:“请用纯函数式风格重写以下代码,所有函数必须无副作用、不可变输入、显式返回”。不要只说“优化代码”或“写得更好”,Kimi无法据此判断优雅的标准。
紧接着列出三条硬性约束,每条用破折号引导:禁止使用for循环→改用map/filter/reduce或递归;所有变量名须符合语义化驼峰(如userEmailList而非arr1);顶层函数必须有TypeScript类型签名。
这一步漏掉任何一条约束,Kimi大概率会沿用原代码的命令式惯性,比如把while改成for,但依然在函数里直接修改传入数组。
提供最小可运行上下文
粘贴原始代码时,只保留触发问题的核心片段。删掉无关的import、测试用例、console.log,但必须包含:输入数据结构示例(如const input = [{id:1,name:'a'}, {id:2,name:'b'}])、原始函数签名(如function transform(data) {...})、预期输出形态(如[{key:1,value:'A'}, {key:2,value:'B'}])。
方法一:用注释框出关键边界——在原始代码前后各加一行// --- CONTEXT START ---和// --- CONTEXT END ---,让Kimi聚焦作用域。
方法二:若原始代码依赖外部模块(如lodash),直接在Prompt中声明替代方案:“不用lodash,用原生Array.prototype方法实现相同功能”。【不声明则Kimi默认启用全量API,可能引入你项目里根本没有的依赖】
使用 Moonshot Kimi API 的 $web_search 内置工具进行联网搜索。当需要进行网络搜索获取实时信息时使用,支持中文和英文搜索查询。需要配置 MOONSHOT_API_KEY。
强制要求分步重构说明
第一步:先指出原代码违反目标范式的三个具体位置(例如:“第5行mutate了输入数组”“第8行隐式依赖全局状态userCache”“第12行函数返回undefined而非新对象”)。
第二步:逐行标注重构依据,格式为“原行号→新行号:原因”,例如“7→3:提取纯函数extractName,消除副作用”。
第三步:输出最终代码,且必须包含与原始输入/输出完全一致的单元测试断言(如expect(result).toEqual(expected)),验证行为未变。
没有这三步,Kimi可能直接甩给你一版“看起来更短”的代码,但内部逻辑已被悄悄篡改。


















