`

cond与if

    博客分类:
  • lisp
阅读更多
(define (f x) 
  (cond ((>= x 0) (- x)))
  (cond ((< x 0) x))
  )

(define (f1 x)
  (if (< x 0)
      (- x)
      x))

> (f -1)
-1
> (f1 -1)
1
> 


cond相当于c,c++中的if,而lisp中的上面中的if则相当于x<0?-x:x,这样的三目运算符

再看看这个
(define a 3)
(define b (+ a 1))
> (cond ((= a 3) 6)
        ((= b 4) (+ 6 7 a))
        (else 25))


16
if(a==3)
  return 6;
else if(b==4)
  return 6+7+a;
else
  return 25;

> (cond ((= a 3) 6)
        ((= b 4) (+ 6 7 a)))
6


> (*(cond ((> a b) a)
          ((< a b) b)
          (else -1))
    (+ a 1))
16


求三个数中较大两个数的和
> (define (f2 a b c)
    (+ (if(> a b) a b) (if(> b c) b c)))
> (f2 1 2 3)

分享到:
评论

相关推荐

    Java基础if和ifelse选择结构

    ### Java基础if和if-else选择结构 在Java编程语言中,`if` 和 `if-else` 结构是控制流程的重要组成部分,用于根据特定条件执行不同的代码块。本文将详细探讨这些结构,并通过实例帮助读者更好地理解如何使用它们。 ...

    if-else 三地址

    1. **IfStat → If Cond Then Stat [Else Stat]** - 解析关键字`if` - 解析条件表达式`Cond`,得到三地址码 - 解析`then`关键字 - 解析语句`Stat1`,得到三地址码 - 如果存在`else`,解析`else`关键字并处理另...

    IF-ELSE条件语句的翻译程序设计(递归下降法、简单优先法、LR方法、LL(1)法、输出四元式)

    在IF-ELSE条件下,可以生成如“IF cond THEN goto label1 ELSE goto label2”的四元式,其中cond是条件表达式,label1和label2分别对应于IF和ELSE分支的目标。这种方式简化了指令集架构的复杂性,使得翻译更加灵活。...

    武汉理工大学编译原理课程设计 IF-THEN条件语句的翻译程序设计(递归下降法、输出三地址码)

    在IF-THEN语句的翻译中,我们需要生成对应的三地址码,如`if cond goto true_label`和`goto false_label`,然后在THEN部分的语句后插入`true_label:`和相应的指令,最后在语句末尾添加`false_label:`。 在实际的...

    编译课程设计LL(1)预测分析法实现if-then语句的分析

    label1: if cond goto label2 label2: stmt1 label3: stmt2 ``` 在这个例子中,cond是条件表达式的三地址码,stmt1和stmt2是then部分的语句。语义分析器会根据条件的真假生成跳转指令,实现逻辑控制。 总的来说,...

    smali基本语法

    if-lt v0, v3, :cond_0 // if-lt 判断数值 v0 小于 v3 .line 43 // ... listStr.add 的 Smali 代码 add-int/lit8 v0, v0, 0x1 // v0 自增1 goto :goto_0 :cond_0 // ... 循环结束后的代码 ``` 这段Smali代码首先初始...

    IF-ELSE条件语句的翻译

    对于IF-ELSE条件语句,中间代码可能包括跳转指令,如:`goto`、`if`和`else`标签,以及条件跳转指令,如:`if cond goto label`。 在设计和实现阶段,学生需要: 1. 描述LR方法的思想,设计LR分析表。 2. 编写词法...

    SensorEventQueue.rar_If...

    8. **同步原语**:如前面所述,`if...`条件可能涉及到了同步原语,比如`pthread_cond_wait()`和`pthread_cond_signal()`,它们用于控制线程间的协作。 在分析`SensorEventQueue.c`和`SensorEventQueue.h`时,我们...

    cond:JavaScript 的可重启错误处理系统

    CondJS cond。 mona是公共领域的作品...function getIceCream ( flavor ) { if ( availableFlavors . indexOf ( flavor ) !== - 1 ) { return flavor + " ice cream ゲットー!" ; } else { // Just like throw new Erro

    编译原理 条件语句翻译

    2. 在解析`if`部分后,我们可能需要生成一个跳转指令,如`if cond is true goto label`,其中`label`是`stmt`开始的地方。如果条件为真,程序会跳转到标签所在的位置执行`stmt`;如果条件为假,则继续执行后续的代码...

    解释器(Interpreter),自定义语法(类C)

    &lt;if&gt; ::= if &lt;cond&gt; then &lt;stmt seq&gt; end; (8) |if &lt;cond&gt; then &lt;stmt seq&gt; else &lt;stmt seq&gt; end; &lt;loop&gt; ::= while &lt;cond&gt; loop &lt;stmt seq&gt; end; (9) &lt;input&gt; ::= read ; ...

    FPGA设计技巧总结(实例).doc

    else if (cond1 && (cond2)) out2 ; // ... 其他条件分支 else begin out1 ; out2 ; out3 ; out4 ; end end endmodule ``` **Eg3:** 使用Case语句 ```verilog module test(clk, a, b, c, cond1, cond2, ...

    pattern_match:ifelse、cond 和模式匹配的性能基准

    模式匹配要运行测试,您需要安装 ,如下所示: mix archive.install https://github.com/alco/benchfella/releases/download/v0.1.0/benchfella-0.1.0.ez然后运行mix bench 。

    cxf-cond-app-master

    通过Java,开发者可以利用其强大的类型系统和丰富的库来构建复杂的业务逻辑,同时CXF提供了一套与Java紧密结合的API,使得Web服务的开发变得简单。 【压缩包子文件的文件名称列表】"cxf-cond-app-master-master" ...

    js-lisp:在nodejs之上用JavaScript编写的Lisp解释器

    #JS-Lisp ## js中的简单lisp解释器 运行lisp代码: $ node lisp.js ...如果cond为false,并且iffalse存在,则运行iffalse。 +-* / (op arg1 arg2 ...) 使用指定的运算符减少参数 或者 (或arg1

    scheduling_allocation_algorithm

    function [Cond_chan,timelong]=Chanbase global detaT Tnum subNum Chanat %信道状况矩阵 Psub=2; %自有信道数量 Cond_chan=[]; % timelong=[(Tnum+1000)*ones(Psub,1);10*detaT+(100-10)*detaT*rand(subNum-Psub,1...

    artTemplate的两个js文件(原生+简洁)

    4. **条件判断**:`{{if condition}}...{{else if cond2}}...{{else}}...{{/if}}`,进行条件判断。 5. **函数调用**:`{{ func(data) }}`,调用自定义函数处理数据。 例如,一个简单的原生语法模板可能如下所示: ...

    handlebars-ansi:用于渲染 cli 视图的 Ansi 转义序列助手

    Handlebars-ansi 是一个专门为 CLI (命令行界面) 视图设计的 JavaScript 库,它扩展了 Handlebars 模板引擎的功能,使得开发者能够在终端输出中包含 ANSI 转义序列,以创建色彩丰富、格式化的文本输出。...

    三元:内联 if/else 和 switch/case:内联条件。 可用作布尔值 (if/else) 或多项选择 (switch/case)-matlab开发

    可以用作开关/案例的if / else。 用法: 如果/其他行为: tern(cond,a,b) 返回:a 如果 cond 为真,否则返回 b 切换/案例行为(&gt; 3 个参数): tern(s,case1,value1,..,caseN,valueN,),与: 开关案例案例1 ...

    无涯教程(LearnFk)-Elixir教程离线版.pdf

    cond语句用于根据多个条件执行代码块,类似于if-else if-else结构。Case语句利用模式匹配来控制程序流程,类似于命令式编程中的switch语句。 文件I/O是编程语言的基础部分,它允许程序与文件系统上的文件进行交互。...

Global site tag (gtag.js) - Google Analytics