Swift 2 (& lldb) シンポジウム
-
Upload
yuichi-yoshida -
Category
Technology
-
view
1.243 -
download
0
Transcript of Swift 2 (& lldb) シンポジウム
Yuichi YoshidaChief engineer, DENSO IT Laboratory, Inc.
@sonson_twit
© 2014 DENSO IT Laboratory, Inc., All rights reserved. Redistribution or public display not permitted without written permission from DENSO IT Laboratory, Inc.
オールドタイプの奮闘
Programming Swift 2 (& LLDB) シンポジウム
Swiftをどうやって勉強するか
自己紹介2tchの中の人
• iOS好きです • 2tch(2ちゃんねるビューア) • iOS SDK Hacksなど
• 研究・開発 • コンピュータビジョン • 機械学習 • 画像検索サービスとか • 車向けサービスやハードウェアとか
たとえば,C→Ruby
int length = 10; int *array = (int*)malloc(sizeof(int) * length);
// initialize array
for (int i = 0; i < length; i++) { printf("%d\n", array[i]); } free(array);
朝飯前だ!
たとえば,C→Ruby
var array = [10, 2, 3, 4, 5, 5, 2] array.each{|e| puts e }
var array = [10, 2, 3, 4, 5, 5, 2] for i in 0...array.count puts array[i] end
Before breakfast! 直訳
Piece of cake! 意訳
避けたいこと
• Rubyを始めたとき(今でも・・・だけど) • CをそのままRubyにしただけ • RubyでコンパイルできるC言語のコード・・・
• C→Rubyへのアドバンテージがない • ライブラリやGemだけ • Obj-C→Swiftの場合はそれすらない
その言語ならではの書き方を学ばなければ意味がない
Obj-Cっぽくないコード書くために
• !を使わない
• できる限り高階関数で実装する
• できる限りclassをstructに換える(意味ないのはダメ) • protocolも使う
• Result<A>に挑戦する
• flatMapに挑戦する←イマココ
reddiftSwift Reddit API Wrapper
• 1億人以上のアメリカのSNS • APIあり • Objective-CのAPI Wrapperはあり
• OAuth2に対応してない • Swiftじゃない
• よし,いっちょ,勉強がてら作るか! • MIT License
https://github.com/sonsongithub/reddift
http://www.objc.io/books/
https://robots.thoughtbot.com/efficient-json-in-swift-with-functional-concepts-and-generics
参考文献?
まとめ
• 勉強どう始める? • Swiftっぽいコードを書かないと意味がない
• ちょっとずつSwiftっぽくしていけばいいんじゃね?
• 議論 • 何から始めればいいのか • Swift っぽいコードとは? • Swiftで関数型言語として実装すべきか • 関数型と手続き型の中間だと思うけど・・・・
デンソーアイティーラボラトリでは、 研究者,エンジニアを絶賛募集中です。
興味のある方はこちら。https://www.d-itlab.co.jp/recruit/
画像処理・機械学習・信号処理・自然言語処理など