Emoji 上的 Swift:换一种视角来理解 Swift 高阶函数

作者:Erica Sadun,原文链接,原文日期:2016-11-08
译者:星夜暮晨;校对:Crystal Sun;定稿:CMB

不久之前,Iain Delaney 给我发了这一幅图:

这幅由 Steve Luscher 设计的图,其内容来源于 Joey Devilla 的博客 Global Nerdy 中的一篇文章。我觉得这种做法相当有才,让人眼前一亮。

然而,这幅图不是用 Swift 编写的,显然没办法在 Swift 中运行。我决定娱乐一番:我建立了一个 Playground,将大量的 Emoji 字符分配到对应的 Emoji 变量当中,由此构建了一个庞大的列表,然后使用 Swift 的语法让这些例子能够正确运行。

我决定听从 Jaden Geller 在 Twitter 上的所提出的建议,我没有使用便便💩来表示 reduce 操作,因为这原先会让人理解为:在每个 reduce 操作执行的时候,都是将便便和一个新的食物合起来一同「吃下」。在 Swift 的版本当中,reduce 将从一个悲伤的表情😪开始,最后变得高兴和满足😋。

我尝试加了更多的食物种类,看看是否值得扩展一下图片上的内容,但是我发现一旦示例数量超过了原先的 4 种食物,就不够干净和优雅了:

我决定不再使用奶牛🐮、土豆🍠、小鸡🐔和玉米🌽,我想看一看是否存在一个比 isVegetarian 更好的 filter 选项。比如说孩子们将会选择自己爱吃的食物(往往并不营养):

然后我又想到,那么为什么不再多加一些 Swift 语言的特性呢?于是我决定描述一下可变和不可变项目操作的概念:

以及重复操作:

还有排序操作(虽然我觉得这里可能换用别的食物会更好一些):

当然了,zip 操作同样很赞:

然后还有 mapflatMap 的对比:

很遗憾的是,足球并不是一个合法的字符标识符,所以我无法在足球和橄榄球之间执行 bitcast 操作。这种不一致的 Emoji 字符集让我很不开心。Swift 需要对操作符和标识符进行基于标准的改造。

当我在鼓捣 fatalError 的时候,我发现我的时间都耗费在这里了:

不知道您是否有喜爱的 Swift 功能,想用 Emoji 将其表示出来吗?我已经向大家展示了我的想法。现在,是时候展示您的想法了。

更新:Phil Aaronson 建议还可以使用 emoji 函数

@ericasadun functions too! pic.twitter.com/IDwDBps2WD

— Phil Aaronson (@phildrone) November 8, 2016

理想情况下,这些示例应当都可以在 Swift Playground 当中编译运行,我同样赞同使用其他 Emoji 来阐述这些功能,即使实现起来相当棘手。

本文由 SwiftGG 翻译组翻译,已经获得作者翻译授权,最新文章请访问 http://swift.gg

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,099评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,473评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,229评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,570评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,427评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,335评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,737评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,392评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,693评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,730评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,512评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,349评论 3 314
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,750评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,017评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,290评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,706评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,904评论 2 335

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 11,952评论 4 60
  • Google的zxing来实现二维码扫描我相信很多人都用过。但是实现的过程遇到了很多的坑,也是因为这些坑在网上没有...
    AWeiLoveAndroid阅读 16,900评论 1 10
  • 一直到二战左右军事步入现代化,步兵队列中的旗手才变为鸡肋而消亡。而在这之前的几千年战争史中,无论古今中外,军队队列...
    Isayamayomi阅读 368评论 0 1
  • 每天兩次產屎,貓咪告訴我人生的哲理,喜歡一個人,一件東西,不能只看美好的,自己喜歡和接受的,同時也要接受那些她所有...
    小酒窝天使阅读 245评论 0 0
  • 我家的阳台上有一颗造型奇特的小松树。它没有五颜六色的花儿,也没有香甜可口的果实,然而它朴素坚强。 远远望...
    红窗月影阅读 450评论 0 0