You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Prolog如何修改列表乘法函数仅对偶数元素乘指定系数

Prolog功能修改实现方案

完整可运行代码

你原有even谓词可以直接复用,仅需要对multiplyf的逻辑加入奇偶分支判断即可,修改后完整代码如下:

% 偶数判断谓词(复用你原有实现)
even(X) :- 
    Y is mod(X,2),
    Y =:= 0.

% 修改后的列表处理谓词
multiplyf(_,[],[]):-!.
multiplyf(F,[X|Xs], [Y|Ys]):-
    (   even(X)
    ->  Y is F * X  % 元素为偶数时乘以系数
    ;   Y is X  % 元素为奇数时保留原值
    ),
    multiplyf(F, Xs, Ys).

效果验证

输入测试用例multiplyf(2, [5,4,8], N),运行后输出结果为N = [5, 8, 16],和你预期的输出完全一致。

说明

  1. 原有代码未加入判断分支,所以所有元素都会被统一乘以系数
  2. 这里使用Prolog标准的(判断条件 -> 成立分支 ; 不成立分支)语法实现if-else逻辑,适配二分支处理需求
  3. 原有代码递归后的冗余cut已移除,避免截断逻辑导致的匹配失败问题

内容的提问来源于stack exchange,提问作者Chelsea95

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 12:36:01