当前位置: 首页 > news >正文

【Janet】控制流

Janet 只有两种内建原语在函数内改变执行流。首先是 if 表达式,它的行为与其他语言一样。它有两或三个参数:一个条件,一个条件为真(不是 nilfalse)时执行的表达式,一个条件为 nilfalse 时执行的表达式。如果省略可选的表达式,默认为 nil

(if (> 4 3)"4 is greater than 3""4 is not greater then three") # Evaluates to the first statement(if true(print "Hey")) # Will print(if false(print "Oy!")) # Will not print

第二个控制流原语是 while 循环。 while 表达式也和大多数语言一样,包括 C,Java 和 Python。 while 循环接受两个或多个参数:首先是一个条件(像 if 一样),条件在每次迭代前检查。当条件为 nilfalse 时, while 循环结束并返回 nil 。否则其余的参数会按顺序执行,然后程序回到循环的开始。

# Loop from 100 down to 1 and print each time
(var i 100)
(while (pos? i)(print "the number is " i)(-- i))# Print ... until a random number in range [0, 1) is >= 0.9
# (math/random evaluates to a value between 0 and 1)
(while (> 0.9 (math/random))(print "..."))

除了这些表达式,Janet 还有很多更适合大多数场景的用于条件测试和循环的宏。对于条件测试,可以使用 condcasewhen 宏。 cond 可以用来实现一个 if-else 链,只使用 if 表达式会导致很多括号。 case 类似于 C 里面的 switch ,但是不会自动 fall-through。 when 也类似 if ,但是当条件为 nilfalse 时返回 false,和 Common Lisp 与 Clojure 中的 when 宏一样。对于循环, loopseqgenerate 实现了 Janet 中的列表推导,和 Python 或 Clojure 中一样。

http://www.dtcms.com/a/594745.html

相关文章:

  • 网站建设哪家公司最好免费医院网页模板
  • 【App开发】05:Android Studio项目配置文件全解析( App 项目结构)
  • 合并两个有序链表 --- 递归
  • 编译立创S3小智语音机器人+修改表情
  • 网站的文件夹结构承包工地的网站
  • Simulink从入门到入门--热水器1
  • 【开题答辩实录分享】以《云音乐小程序设计与开发》为例进行答辩实录分享
  • 三生团队网站找谁做的国人原创wordpress主题
  • 京东云网站建设做网站四百全包
  • 深圳做男装什么网站容易找工网站建设总体需求报告
  • Java-167 Neo4j CQL 实战:CREATE/MATCH 与关系建模速通 案例实测
  • 基于突发性链路感知的自适应链路质量估计算法matlab仿真
  • 开发网站广州a站app
  • 一款3.8V to 55V输入,提供2A电流的DC-DC降压芯片推荐
  • OpenAI responses使用教程(三) ——Responses create python SDK 介绍
  • 北京运营推广网站建设黄骅港赶海推荐个好地方
  • 珠海网站建设公司哪个好最近发生的新闻事件
  • win10 配置下载安装 Office LTSC 专业增强版 2024
  • K8S RD: Kubernetes运维核心指南:污点调度、网络架构与全链路故障排查实战
  • 怎么做徐州市环保局网站备案表网站设置flash
  • 代做施组 方案的网站上海企业制作网站有哪些内容
  • 网站的盈利方法微信上做网站编辑
  • 14.日志封装和线程池封装
  • 呼和浩特做网站哪家好网站上线备案
  • 鼓楼徐州网站开发东莞通app打不开
  • 免费建站模板哪个好怎么查看自己网站有没有做301
  • 新网站如何让百度收录wordpress非代码方式添加备案号
  • COM组件
  • 如何构建加密货币分钟级回测系统(整体设计说明)
  • 手术相关公开数据集收集报告