ruby杂

r1.gif

分享到...

复制网址邮件QQ空间新浪微博MSN腾讯微博人人网开心网百度搜藏谷歌Buzz搜狐微博腾讯朋友淘江湖网易微博豆瓣查看更多(96)

这是什么工具?

img_012.gifJiaThis

分享到各大网站
img_exit.gif

复制网址收藏夹邮件谷歌BuzzQQ空间百度搜藏新浪微博搜狐微博网易微博腾讯微博人人网开心网搜狐白社会淘江湖百度空间腾讯朋友天涯社区凤凰微博饭否手机优士网GMAIL邮箱Hotmail邮箱Yahoo! mail飞信51社区谷歌有道书签QQ收藏MSN新浪vivi微软live雅虎收藏115收藏和讯天极139说客百度贴吧好诶嘀咕网豆瓣抓虾鲜果做啥人间网Follow5和讯微博梦幻人生deliciousdiggfacebooktwittermyspacePOCO网若邻网中金微博乐收奇客发现同学网挖客网收客网创业邦就喜欢114啦救救地球抽屉网递客网豆瓣9点黑米书签宝盒网易集网PDF在线转换友好打印英文翻译谷歌阅读器w3c验证Bit.lyDIIGO.comEverNoteFriendFeedLinkedInMIXXNetLogNetvibes.comPhonefavsping.fmPlaxo.comPollAdiumRedditMister-WongStumbleuponPlurk.comFunp.comAsk.commysharefwisp

这是什么工具?

img_012.gifJiaThis

Lazy evaluation in Ruby_Ruby_编程开发_程序员俱乐部

中国优秀的程序员网站top_bg_xian.gif程序员频道nav_ico1.giftop_bg_xian.gifCXYCLUB技术nav_ico1.giftop_bg_xian.gif地图

top_shequ.gif最新资讯 | 百度新闻 | GOOGLE地图 | RSS订阅 | 更多nav_ico1.gif

非技术区
生活休闲 恋爱交友

职业发展求职面试程序人生

移动开发
开发工具
DB2
MySql Sybase
开发
JAVA .NET PHP C/C++
数据库
SQL Server Oracle
互联网
运营 推广 营销 SEO
系统
Linux Unix Windows
资讯
动态 产品 人物
创业
职场 学习 管理

热搜:

更多>>

您所在的位置: 程序员俱乐部 > 编程开发 > Ruby > Lazy evaluation in Ruby

Lazy evaluation in Ruby

2011-1-2 10:31:01  fuliang  http://fuliang.javaeye.com  我要评论(0)

  • 摘要:1.使用||延迟初始化 deffib(n)@result||=[]returnnif(0..1).include?n@result[n]||=fib(n- 1)+fib(n-1)end2.使用无穷大InifinityRuby可以使用无穷大:irb(main):001:0>Inf=1/0.0=& gt;Infinityirb(main):002:0>(-Inf..Inf).include?(10)=>true使用 Inifinity可以构造无穷大小的LazyList:lazyList=
  • 标签:Ruby

1.使用||延迟初始化

def fib(n)
     @result ||= []
     return n if (0..1).include? n
     @result[n] ||= fib(n-1) + fib(n-1)
end

2.使用无穷大Inifinity
Ruby可以使用无穷大:
irb(main):001:0> Inf = 1 / 0.0
=> Infinity
irb(main):002:0> (-Inf..Inf).include?(10)
=> true

使用Inifinity可以构造无穷大小的Lazy List:
lazyList = (0..1/0.0)
lazyList.take(100).select{|i| i % 2 == 0}
 lazyList.take(100).select{rand > 0.9}

3.使用Enumerator:
fib = Enumerator.new { |y|
    a = b = 1
    loop {
      y << a
      a, b = b, a + b
    }
 }
fib.take(10) #=> [1, 1, 2, 3, 5, 8, 13, 21, 34, 55]

natural_numbers = Enumerator.new do |yielder|
  number = 1
  loop do
    yielder.yield number
    number += 1
  end
end

#lazy select
class Enumerator
  def lazy_select(&block)
    Enumerator.new do |yielder|
      self.each do |val|
      yielder.yield(val) if block.call(val)
      end
    end
  end
end
p natural_numbers
    .lazy_select {|n| n % 47 == 0}
    .lazy_select {|n| palindrome_number?(n)}
    .first(5)

4.使用Fiber:
fib = Fiber.new do
   f1 = f2 = 1
   loop do
       Fiber.yield f1
       f1, f2 = f2, f1 + f2
    end
end

10.times { puts fib.resume }

参考:
Lazy Enumerators in Ruby

上一篇: Ruby Proc curry化 下一篇: (转)项目管理工具 Redmine 安装试用手记

Lazy evaluation in Ruby

Ruby Proc curry化

One line Ruby code

ruby 时间处理

Ruby复合函数

查看所有评论(0)
我要评论

发表评论

用户名: 匿名

最新文章

(转)项目管理工具 Redmine 安装试用手记

(转)项目管理..

RVM中文使用指南

RVM中文使用..

最新标签
局域网 繁体字转化为简体字 脚本 预定义变量 CMS 递归 产品经理 性能监测工具 Metric_fu静态代码检查工具 泛域名
今日热点
推荐文章

netbeans安装快速调试器出错 netbeans ruby debug ide

netbean..

Rails3路由简析

Rails3路..

StatImage.aspx?Type=news&NewsID=5821

posted on 2011-01-14 09:36  lexus 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/lexus/archive/2011/01/14/1935198.html

基于MMSkeleton工具包中的ST-GCN模型实现一种基于动态拓扑图的人体骨架动作识别算法python源码+使用说明.zip 改进ST-GCN模型的骨架拓扑图构建部分,使用持续学习思想动态构建人体骨架拓扑图. 将具有多关系特性的人体骨架序列数据重新编码为关系三元组, 并基于长短期记忆网络, 通过解耦合的方式学习特征嵌入. 当处理新骨架关系三元组时, 使用部分更新机制 动态构建人体骨架拓扑图, 将拓扑图送入ST-GCN进行动作识别。 运行MMSKeleton工具包参考[GETTING_STARTED.md](./doc/GETTING_STARTED.md) - 单独使用ST-GCN模型进行人体动作识别参考[START_RECOGNITION.md](./doc/START_RECOGNITION.md) - 训练基于动态拓扑图的人体骨架动作识别算法 ``` shell cd DTG-SHR python ./mmskeleton/fewrel/test_lifelong_model.py ``` - 测试基于动态拓扑图的人体骨架动作识别算法 ``` shell cd DTG-SHR python ./mmskeleton/fewrel/train_lifelong_model.py ``` - 可视化算法运行结果 基于web server搭建前端 [[参考]](https://blog.csdn.net/gzq0723/article/details/113488110) 1、前端模块:包含 'static与'templates'文件夹为界面展示相关的代码。 templates里面包含了两个html的结构文档,用来定义浏览器的显示界面。 static里面的css和img用来修饰界面。 2、服务模块: servel.py里面是web服务的一个业务逻辑。 运行算法性能可视化web服务 ``` shell cd DTG-SHR python ./server.py ``` 【备注】 1、该资源内项目代码百分百可运行,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值