在CLIPS中使用switch函数

请询问关于“switch”函数的问题。我希望实现以下功能:

(switch ?student  (case (stu1 or stu2 or stu3) then   -------)  (case stu4 then   ------))

如何让多个选择执行相同的操作?


回答:

如果在case关键字后放置一个函数调用,那么该函数调用必须返回与switch关键字后面的值相同的值,才能应用case的操作。因此,您可以定义一个辅助函数,该函数接收switch关键字后的值和一组应应用case的值。如果该值在这些值中,则只需返回该值,case就会被应用。如果不在其中,则否定该值,case语句的操作就不会被应用。

         CLIPS (6.31 6/12/19)CLIPS> (deffunction oneof (?v $?values)   (if (member$ ?v ?values)      then ?v      else (not ?v)))CLIPS>       (deffunction grade (?student)   (switch ?student      (case (oneof ?student stu1 stu2 stu3)         then B-)      (case stu4         then A+)))CLIPS> (grade stu1)B-CLIPS> (grade stu2)B-CLIPS> (grade stu3)B-CLIPS> (grade stu4)A+CLIPS> 

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注