本邮件内容由第三方提供,如果您不想继续收到该邮件,可
点此退订 。
Scala中Stream的应用场景及其实现原理 - 崔鹏飞 阅读原文»欢迎访问我的独立博客:http://cuipengfei.me/blog/2014/10/23/scala-stream-application-scenario-and-how-its-implemented/
假设一个场景
需要在50个随机数中找到前两个可以被3整除的数字。
听起来很简单,我们可以这样来写:
1 2 3 4 5 6 7 8 9
| def randomList = (1 to 50).map(_ => Random.nextInt(100)).toList
def isDivisibleBy3(n: Int) = { val isDivisible = n % 3 == 0 println(s"$n $isDivisible") isDivisible }
randomList.filter(isDivisibleBy3).take(2)
|
一个产生50个随机数的函数;
一个检查某数字是否能被3整除的函数;
最后,对含有50个随机数的List做filter操作,找到其中所有能够被3整除的数字,取其中前两个。
把这段代码在Scala的console里面跑一下,结果是这样的:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| scala> randomList.filter(isDivisibleBy3).take(2) 31 false 71 false 95 false 7 false 38 false 48 true 88 false 52 false 2 false 27 true 90 true 55 false 96 true 91 false 82 false 83 false 8 false 51 true 96 true 27 true 12 true 76 false 17 false 53 false 54 true 70 false 29 false 49 false 12 true 83 false 18 true 6 true 7 false 76 false 51 true 95 false 76 false 85 false 87 true 84 true 44 false 44 false 89 false 84 true 42 true 44 false 0 true 23 false 35 false 55 false res34: List[Int] = List(48, 27) 我的 Sublime Text 2 笔记 - 颜海镜 阅读原文»作为aptana死忠粉的我,最近由于工作需要最近开始使用sublime,初次使用,就被其秒开的启动速度,简洁的界面设计,无干扰的信息提示所这幅。 俗话说,工欲善其事必先利其器,作为码农,在开始编码之前,必须要对自己的工具熟悉,才能事半功倍,所以开始了一番折腾,下面记录下一些笔记。 快捷键作为码农,很多时间都是在敲键盘的,所以快捷键是非常重要的,sublime的快捷键非常非常多,很难都记住,按照80/20原则,只有20%是常用的,下面是我常用的快捷键: 快捷键 | 功能 |
---|
ctrl + p | 搜索项目中的文件 | ctrl+k, ctrl+b | 切换侧边栏显示状态 | ctrl+shift+backspace | 左侧全部删除 | ctrl+y | 重做或重复 | shift+方向键 | 移动并选择 | ctrl+[|] | 缩进|取消缩紧 | ctrl+l | 选择行,重复可依次增加选择下一行 | ctrl+m | 跳转到对应括号 | alt+. | close tag | ctrl+shift+p | 打开命令面板 | ctrl+r | 前往Method | ctrl+g | 跳转到第几行 | ctrl+/ | 当前行注释状态切换 | ctrl+shift+[|] | 折叠|展开(代码) | ctrl+h | 替换 |
插件sublime的功能已经很满足大部分需求了,但还是有个别差异化的需求,无法满足,这时候sublime的插件派上用场,先来晒下我的插件。 由于sublime 2本身不带插件,所以要先安装插件管理器(package control),首先打开控制台,点击sublime的菜单栏 view->show console(或者使用快捷键 ctrl+`)。 现在打开了控制台, 这个控制台有上下两栏, 上面一栏会实时显示sublime执行了什么插件,输出执行结果, 如果你安装的某个插件不能正常运行,应该先在这里看看有没有报错。下面栏是一个输入框,可以运行python代码。 我们输入下面的代码点击回车运行, 就能安装好package control了。 import urllib2,os,hashlib; h = '7183a2d3e96f11eeadd761d777e62404' + 'e330c659d4bb41d3bdf022e94cab3cd0'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); os.makedirs( ipp ) if not os.path.exists(ipp) else None; urllib2.install_opener( urllib2.build_opener( urllib2.ProxyHandler()) ); by = urllib2.urlopen( 'http://sublime.wbond.net/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); open( os.path.join( ipp, pf), 'wb' ).write(by) if dh == h else None; print('Error validating download (got %s instead of %s), please try manual install' % (dh, h) if dh != h else 'Please restart Sublime Text to finish installation') 运行结束以后,记得重启编辑器,就能在Preferences中看到 package control了。 然后我们按住 ctrl+shift+p。此时会输出一个输入框,即可安装,删除,更新插件了。 这是一个非常棒的插件,可以让sublime支持less的语法高亮和语法提示,对于搞less的同学灰常重要,不过多解释。 EmmetEmmet的前身是大名鼎鼎的Zen coding,如果你从事Web前端开发的话,对该插件一定不会陌生。它使用仿CSS选择器的语法来生成代码,大大提高了HTML/CSS代码编写的速度。 SublimeLinter可以验证各种语法错误,不多解释。 DocBlockrDocBlockr 可以使你很方便地对代码建立文档。它会解析函数,变量,和参数,根据它们自动生成文档范式,你的工作就是去填充对应的说明。 专门用来格式化js的工具,非常给力。 BracketHighlighter像这些符号是成对的:花括号{}, 中括号[],括号:() ,引号“” 等。 这些符号当我们鼠标放在开始符号的位置的时候, 希望能明显看到结尾符号在哪儿sublime默认是下划线,很不明显, 想要明显一点,可以安装插件 BracketHighlighter。
本文链接:我的 Sublime Text 2 笔记,转载请注明。 阅读更多内容
|
没有评论:
发表评论