博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
s表达式和json表达式
阅读量:6634 次
发布时间:2019-06-25

本文共 776 字,大约阅读时间需要 2 分钟。

s表达式 + 1 2 3

普通表达式 1+2+3
json表达式
{
+:[1, 2, 3]
}
优点,一个运算符,无限个参数

 

s表达式 * (+ 1 2) 3

普通表达式 1+(2*3)
json表达式
{
*:[{+:[1,2]} , 3]
}
优点,阅读代码的时候,无需记住运算优先级。普通表达式则要记住运算优先级

s表达式判断 if (< x 0) (-x) (x)
普通表达式 if(x<0){return -x} else{return x}
json表达式
{
if:[{ <: [x,0]}, -x, x]
}

s表达式and判断 if (and (> x 0) (< x 10)) (-x) (x)
json表达式
{
if: [ {and: [{>:[x, 0]} , {<: [x, 10]} ]}, -x, x]
}

s表达式的递归

define (factorial n)
(if (= n 1))
(1)
(* n (factorial (- n 1)))
json表达式
{
define: [{factorial:n}, {if:[{=:[n, 1]}, 1, {*:[n, {factorial:[{-:[n, 1]}] }]} ]}]
}

 

s表达式的迭代
define (factorial n) (fact-iter 1 1 n)
{
define:[{factorial:n}, {fact-iter:[1, 1, n]}]
}

define (fact-iter product counter max-count)

(if (> counter max-count))
(product)
(fact-iter (* counter product)) (+ counter 1) (max-count)))

 

转载地址:http://vrfvo.baihongyu.com/

你可能感兴趣的文章
前端面试回忆录 - 滴滴篇 - 凉面
查看>>
jxl导入Excel 切割List 并使用MyBatis批量插入数据库
查看>>
小程序开发总结
查看>>
管理ORACLE实例
查看>>
JavaScript 闭包
查看>>
java获取当前时间前一周、前一月、前一年的时间
查看>>
话说WEB开发之页面重绘和回流
查看>>
using标识使用
查看>>
T264接口说明
查看>>
SELinux介绍
查看>>
Rsyslog实现Nginx日志统一收集
查看>>
linux文本处理三剑客之grep家族及其相应的正则表达式使用详解
查看>>
Python---装饰器
查看>>
s17data01
查看>>
java set and get 用法
查看>>
linux笔记1-1
查看>>
dubbo源码分析-负载均衡
查看>>
一统江湖的大前端(3) DOClever——你的postman有点low
查看>>
云栖大会上发布了哪些移动研发新利器?
查看>>
day6作业--游戏人生完善
查看>>