七周七语言之IO语言代码学习

<img src="https://img-blog.csdn.net/20141231234020119?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHVvcG8xMjU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
# hello.io
"Hello World!" print

# 实现unless功能
# doMessage相当于一些语言中的eval
unless := method(
    (call sender doMessage(call message argAt(0))) ifFalse(call sender doMessage(call message argAt(1))) ifTrue(call sender doMessage(call message argAt(2)))
)
unless(1 == 2, write("One is not two\n"), write("one is two\n"))

#协成
vizzini := Object clone
vizzini talk := method(
    "Fezzik, are there rocks ahead?" println
    yield
    "No more rhymes now, I mean it." println
    yield
)
vizzini @@talk; fezzik @@rhyme
Coroutine currentCoroutine pause

# actor并发
# Io的动人之处,发送异步消息给任意对象就是actor
slower := Object clone
faster := Object clone
slower start := method(wait(2); writeln("slowly"))
faster start := method(wait(1); writeln("quickly"))
slower @@start; faster @@start; wait(3)

优势:
1.占用空间:占用空间小。大多数Io应用程序的产品都是嵌入式系统。
2.简单:语法简洁,容易学习。
3.灵活:Io的鸭子类型和自由度,能让你在任何时间改变任何对象的任何槽。
4.并发:提供了actor、future和协程使得Io编写多线程应用程序要容易的多。
不足:
1.语法:几乎没有什么语法糖。编码量大时,容易使得代码不易读。
2.社区:社区规模非常小。
3.性能:对于单线程服务的程序来说,Io有不少能拖慢其执行速度的特性。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值