トップページ⇒tech
1001コメント338KB

Swift part2

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2014/06/11(水) 14:42:15.02ID:+13mKJ0Z
WWDC2014で発表されたAppleの新言語Swiftについて語りましょう

Apple Developer
https://developer.apple.com/swift/
Welcome to Swift
https://developer.apple.com/library/prerelease/ios/referencelibrary/GettingStarted/LandingPage/
iBooks: The Swift Programming Language
https://itunes.apple.com/jp/book/swift-programming-language/id881256329?mt=11
書籍の形にはなってないけどドキュメント
The Swift Programming Language
https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/index.html#//apple_ref/doc/uid/TP40014097
Using Swift with Cocoa and Objective-C
https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/index.html#//apple_ref/doc/uid/TP40014097
今のところbeta版のXcode 6がSwift対応らしい
https://developer.apple.com/xcode/downloads/

関連スレ
TypeScript(MS) VS Swift(Apple)
http://peace.2ch.net/test/read.cgi/tech/1401758403/

前スレ
Swiftスレ
http://peace.2ch.net/test/read.cgi/tech/1401736341/
0951デフォルトの名無しさん2014/07/22(火) 10:07:40.31ID:brrWCVo/
NSUInteger maps to Swift's Int type in iOS and OS X system frameworks and to UInt in !user code . (17473606)!
これどういう事? > UInt in !user code
0952デフォルトの名無しさん2014/07/22(火) 10:53:18.12ID:m0OGWg9n
beta4 でのコレ↓
var i: UInt16 = UInt16.max
++i
最適化無し(-Onone)でも実行時エラーが出るように修正されましたね
0953デフォルトの名無しさん2014/07/22(火) 10:53:39.33ID:pTtZ8nRg
アクセス修飾子キタ━━(゚∀゚)━━!
0954デフォルトの名無しさん2014/07/22(火) 11:02:19.27ID:m0OGWg9n
>>951
縁の下(framework)では Int って事にするけど、ユーザーが書くコード側では UInt
だからどこか深い部分に関わらない限りは気にしなくていいよって事かと
0955デフォルトの名無しさん2014/07/22(火) 11:16:20.14ID:m0OGWg9n
Range周りは仕様変更が続くなあ
stride(from: 0, through: 10, by: 3) と書けるようにしたから
(0..<10).by(3)  みたいには書けないよ。もうそんなmethod無いからwって・・・
別に残してくれても良かったと思うけどなあ
0956デフォルトの名無しさん2014/07/22(火) 12:04:37.22ID:brrWCVo/
>>955 前の方がずっとわかりやすかったのにね。
せめて stride ( 0..<10 , by: 3 ) としてほしかった。
0957デフォルトの名無しさん2014/07/22(火) 12:26:15.46ID:pTtZ8nRg
まだSourceKitは荒ぶるな
鎮まりたまえ〜
0958デフォルトの名無しさん2014/07/22(火) 12:37:09.40ID:kVgxKTl3
もう for (int i=0, i<10, i+=3) でいいよ
0959デフォルトの名無しさん2014/07/22(火) 19:47:40.52ID:3XIByciF
うむ。分かりやすいのが一番
0960デフォルトの名無しさん2014/07/22(火) 22:28:32.25ID:OS8Ua5qm
関数型のスタイルっていうのは全部再帰で書くことだろ
一切副作用を使わずfor文のi++もなくし配列もなくして
単連結リストと末尾再帰で表現するのが関数型
そこを見ないと本質が見えなくなる
0961デフォルトの名無しさん2014/07/22(火) 22:34:54.53ID:nSYxmQ2R
状態を関数モデルで無理矢理扱うための苦肉の策だろ
別に関数モデル使うのが目的じゃなくて本来の目的は宣言型プログラミングなんだから、
それを損なうような再帰の乱用は考えもの
0962デフォルトの名無しさん2014/07/22(火) 23:07:47.19ID:Xdd3r5lq
純粋関数型という制限がないと、たんなるプログラミングの好みの問題となる。
0963デフォルトの名無しさん2014/07/22(火) 23:14:53.12ID:vNYu1ctv
>>960
> 関数型のスタイルっていうのは全部再帰で書くことだろ

それは間違いじゃないけれど、正しくもない

ちょうど関数型言語アンチスレに、同じ様な初心者からの
質問が過去にあったから、それを紹介しとく

> 413 :デフォルトの名無しさん:2013/06/20(木) 19:42:10.61
> 関数型言語ってループは末尾再帰で書くんですよね?

・【アンチ】関数型言語は使えない【玩具】 2
  http://peace.2ch.net/test/read.cgi/tech/1330429547/413-418

Swift と同じく関数型言語ではない Ruby のケースも例に含まれているから、
「Swift における関数型プログラミング」にも参考になると思う
0964デフォルトの名無しさん2014/07/22(火) 23:26:48.85ID:OS8Ua5qm
状態・副作用丸出しのオブジェクト指向に
ラムダ式という便利なコールバックを加えただけのことで
関数型でもなんでもない運用をするのが
オブジェクト指向と関数型のハイブリッド言語と言われるものの特徴だと思うよ

これを関数型に分類しようとすると本質を見失うだけ
0965デフォルトの名無しさん2014/07/22(火) 23:39:02.75ID:pTtZ8nRg
Swiftは純粋関数型やるための言語じゃない
関数型の本質を語りたいならこのスレじゃない
0966デフォルトの名無しさん2014/07/22(火) 23:39:39.31ID:vNYu1ctv
>>964
たしかに >>960 の「単連結リストと末尾再帰で表現する」のは、
関数型言語の背景にある抽象的な理論(ラムダ計算モデル)にとって本質だよね

ところで、ここは「関数型言語ではない Swift」のスレなわけだけど、
その本質とやらを見失うと「Swift における関数型プログラミング」にとって、
どんな具体的な悪影響があるんだろう?

とりあえず >>907 の末尾で紹介したネット記事から、以下の一節を引用しとくね

 それでは、このガイドでは「理論的な関数型の純粋性を信奉する
 風変わりなスタイルを布教するつもりがない」ことを明らかにしていこう。
 逆に、私の試みのポイントは、 コードの品質を向上させたいときは
 いつでも関数型プログラミングを使用すべきであるけれど、
 それ以外のときには(関数型プログラミングは)まさに誤った解決手段である、
 というものである。

もしも関数型言語のウンチクを語りたいだけなら、スレ違いだから
関数型言語スレへ移動して、そこで大いに議論すればいいと思う
0967デフォルトの名無しさん2014/07/22(火) 23:44:46.27ID:OS8Ua5qm
いやいや関数型じゃないものを関数型プログラミングというのは
誤解を招くだけというかただの詭弁じゃない
0968デフォルトの名無しさん2014/07/22(火) 23:50:30.53ID:pTtZ8nRg
誰も誤解しないし、お前みたいなのを隔離するために"純粋"関数型という言葉が存在する
これ以上スレ違い続けるなよ
0969デフォルトの名無しさん2014/07/22(火) 23:53:30.16ID:RYGlxIg7
>>964
>関数型でもなんでもない運用をするのが
それは違わね?
手続き型のプログラミングをしてる人でも、あまり意識することなく関数型の恩恵に与られるのがSwiftみたいな言語の特徴だと思うけどな。
1番分かりやすいのがコレクション操作、集計処理だろう。(map,filterとか)

本質って大多数にはどうでもいいわけ。オブジェクト思考も同じ。
0970デフォルトの名無しさん2014/07/22(火) 23:56:36.29ID:OS8Ua5qm
純粋関数型も関数型も別に根っこは変わんねえよ
コレクションに対して高階関数を渡して処理するのはオブジェクト指向で普通にやってること
仮想関数の実装方法がラムダに変わっただけなものを関数型なんて言い出すから馬鹿にされる
ちょっとベターにしただけのただのオブジェクト指向だよ
0971デフォルトの名無しさん2014/07/23(水) 00:05:20.67ID:UkE72Sh4
みんな関数型を誤解している!
理解できるのはこの世で僕だけだ!

こうですか
0972デフォルトの名無しさん2014/07/23(水) 00:05:41.49ID:gU9I4UPn
>>970
ちょっと頭冷やした方がよくね?
高階関数を渡して処理するOOPはあるが、高階関数を渡して処理するからOOPではないだろ?
それは関数型の考え方に対応したOOPってだけだよ。
OOPの定義は全く別物だよ。

あと、純粋関数型も(非純粋)関数型も変わんないってことは、非純粋関数型のSwiftも関数型って認めてるじゃん。自己矛盾してるね
0973デフォルトの名無しさん2014/07/23(水) 00:12:33.82ID:gU9I4UPn
>>953
public,internal,privateかあ
protectedはないんだね
0974デフォルトの名無しさん2014/07/23(水) 00:12:52.90ID:S/T3pfYX
>>972
純粋って書いてない関数型言語でも
基本的にループはしないで再帰で書くし配列より単連結リストを使うってことだよ
0975デフォルトの名無しさん2014/07/23(水) 00:15:19.44ID:gU9I4UPn
>>974
その前提がおかしいだろ
純粋関数型でなければ、どちらで書くかはプログラマが決めるんだよ。そうでなければ、非純粋の意味がないでしょ
0976デフォルトの名無しさん2014/07/23(水) 00:16:01.35ID:phognMRi
internalとprivateの違いは何だ?
0977デフォルトの名無しさん2014/07/23(水) 00:16:27.75ID:gU9I4UPn
>>976
internalはターゲット内。
0978デフォルトの名無しさん2014/07/23(水) 00:20:25.53ID:S/T3pfYX
>>975
別に純粋関数型だって手続き型みたいに書くこともできるし
手続き型言語だって関数型のスタイルで書くことも出来る

言語の標準スタイルが関数型なのかどうかが問題なのであって
Swiftのスタイルは関数型ではないというだけの話
0979デフォルトの名無しさん2014/07/23(水) 00:42:10.76ID:gU9I4UPn
>>978
なんか勘違いしてるようだが、俺の発言は>>960への反論だからな?
Swiftのメインの考え方が関数型と言っているわけではなく、関数型のスタイルも取り入れているよと主張しているだけだ。
0980デフォルトの名無しさん2014/07/23(水) 00:57:36.64ID:S/T3pfYX
関数型のスタイルを取り入れてるっていうのが
全然関数型じゃないって話だよ
関数型のスタイルは>>960

コレクションに高階関数を入れて処理するなんてのは関数型でもなんでもないわけ
たとえばRubyのmapに!をつけて中身変更したら関数型じゃなくなって!つけなければ関数型なのか? ってこと
どっちも別に関数型とは関係ないただの便利なコレクションライブラリでしかない
0981デフォルトの名無しさん2014/07/23(水) 01:17:36.24ID:UT9I22cv
>>980
杓子定規なやつだなー
そのただの便利なコレクションライブラリは関数型の考えなしで成り立つのかね?
0982デフォルトの名無しさん2014/07/23(水) 07:05:28.23ID:Pu3k1ugl
1 to: 5 do: [ :each | ].

元祖OOの考え方だろうな。
0983デフォルトの名無しさん2014/07/23(水) 07:11:15.82ID:Pu3k1ugl
std::find_if( collection.begin(), collection.end(), 5 < _1 );

C++も関数型なんて言葉が持て囃される前から
関数Objectと言う言葉が使われてた。
OOには元々処理を引数に取るってのが含まれてる。
0984デフォルトの名無しさん2014/07/23(水) 07:35:19.89ID:Qr1azPSk
WWDC2014で発表されたAppleの新言語Swiftについて語りましょう

Apple Developer
https://developer.apple.com/swift/
Welcome to Swift
https://developer.apple.com/library/prerelease/ios/referencelibrary/GettingStarted/LandingPage/
iBooks: The Swift Programming Language
https://itunes.apple.com/jp/book/swift-programming-language/id881256329?mt=11
書籍の形にはなってないけどドキュメント
The Swift Programming Language
https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/index.html#//apple_ref/doc/uid/TP40014097
Using Swift with Cocoa and Objective-C
https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/index.html#//apple_ref/doc/uid/TP40014097
今のところbeta版のXcode 6がSwift対応らしい
https://developer.apple.com/xcode/downloads/

関連スレ
TypeScript(MS) VS Swift(Apple)
http://peace.2ch.net/test/read.cgi/tech/1401758403/
帰ってきた動的言語 VS 静的言語(代表Swift)
http://peace.2ch.net/test/read.cgi/tech/1401809550/

前スレ
Swiftスレ
http://peace.2ch.net/test/read.cgi/tech/1401736341/
Swift part2
http://peace.2ch.net/test/read.cgi/tech/1402465335/
0985デフォルトの名無しさん2014/07/23(水) 07:49:45.87ID:xa9IqUVv
関連スレ
プログラミング言語Swift
http://anago.2ch.net/test/read.cgi/mac/1401736921/
0986デフォルトの名無しさん2014/07/23(水) 08:00:48.29ID:xa9IqUVv
Swift Blog
https://developer.apple.com/swift/blog/

Resources
https://developer.apple.com/swift/resources/
(Xcode 6が無料でダウンロードできる)

Swift Standard Library Reference
https://developer.apple.com/library/prerelease/ios/documentation/General/Reference/SwiftStandardLibraryReference/
0987デフォルトの名無しさん2014/07/23(水) 11:18:37.49ID:BhM4HbtC
こっちに合流でいいだろ
マカがム板にスレ立てなんて10年早いんだよ

プログラミング言語Swift
http://anago.2ch.net/test/read.cgi/mac/1401736921/
0988デフォルトの名無しさん2014/07/23(水) 11:32:57.71ID:LQb75DXj
マカーにとって10年早いのは本望じゃね
0989Swift part32014/07/23(水) 11:43:28.22ID:x29J8vdY
WWDC2014で発表されたAppleの新言語Swiftについて語りましょう

Apple Developer
https://developer.apple.com/swift/
Welcome to Swift
https://developer.apple.com/library/prerelease/ios/referencelibrary/GettingStarted/LandingPage/
iBooks: The Swift Programming Language
https://itunes.apple.com/jp/book/swift-programming-language/id881256329?mt=11
書籍の形にはなってないけどドキュメント
The Swift Programming Language
https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/index.html#//apple_ref/doc/uid/TP40014097
Using Swift with Cocoa and Objective-C
https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/index.html#//apple_ref/doc/uid/TP40014097
Swift Standard Library Reference
https://developer.apple.com/library/prerelease/ios/documentation/General/Reference/SwiftStandardLibraryReference/
Swift Blog
https://developer.apple.com/swift/blog/
Resources (Xcode 6が無料でダウンロードできる)
https://developer.apple.com/swift/resources/

関連スレ
TypeScript(MS) VS Swift(Apple)
http://peace.2ch.net/test/read.cgi/tech/1401758403/
帰ってきた動的言語 VS 静的言語(代表Swift)
http://peace.2ch.net/test/read.cgi/tech/1401809550/

前スレ
Swiftスレ
http://peace.2ch.net/test/read.cgi/tech/1401736341/
Swift part2
http://peace.2ch.net/test/read.cgi/tech/1402465335/
0990Swift part32014/07/23(水) 11:45:21.51ID:x29J8vdY
WWDC2014で発表されたAppleの新言語Swiftについて語りましょう

Apple Developer
https://developer.apple.com/swift/
Welcome to Swift
https://developer.apple.com/library/prerelease/ios/referencelibrary/GettingStarted/LandingPage/
iBooks: The Swift Programming Language
https://itunes.apple.com/jp/book/swift-programming-language/id881256329?mt=11
書籍の形にはなってないけどドキュメント
The Swift Programming Language
https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/index.html#//apple_ref/doc/uid/TP40014097
Using Swift with Cocoa and Objective-C
https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/index.html#//apple_ref/doc/uid/TP40014097
Swift Standard Library Reference
https://developer.apple.com/library/prerelease/ios/documentation/General/Reference/SwiftStandardLibraryReference/
Swift Blog
https://developer.apple.com/swift/blog/
Resources (Xcode 6が無料でダウンロードできる)
https://developer.apple.com/swift/resources/

関連スレ
TypeScript(MS) VS Swift(Apple)
http://peace.2ch.net/test/read.cgi/tech/1401758403/
帰ってきた動的言語 VS 静的言語(代表Swift)
http://peace.2ch.net/test/read.cgi/tech/1401809550/

前スレ
Swiftスレ
http://peace.2ch.net/test/read.cgi/tech/1401736341/
Swift part2
http://peace.2ch.net/test/read.cgi/tech/1402465335/
0991デフォルトの名無しさん2014/07/23(水) 11:48:08.32ID:x29J8vdY
Swift part3
http://peace.2ch.net/test/read.cgi/tech/1406083608/

立てた。なんかビューアの操作ミスって連投して済まん。
0992デフォルトの名無しさん2014/07/23(水) 12:17:20.00ID:Sn+nXjer
>>987
却下
0993デフォルトの名無しさん2014/07/23(水) 12:39:08.41ID:DBq3gC0T
>>987
ここはゴミ避けのフィルタなんだから無くしちゃダメ
0994デフォルトの名無しさん2014/07/23(水) 12:58:25.27ID:Sn+nXjer
>>993
てめーみてーなカスのな
0995デフォルトの名無しさん2014/07/23(水) 17:28:30.53ID:F2A3Bmpn
埋め
何年後にオープンソースになるか?
2年、2016年
0996デフォルトの名無しさん2014/07/23(水) 18:25:24.22ID:UkE72Sh4
俺は年内にはなると思うけどな

梅
0997デフォルトの名無しさん2014/07/23(水) 18:29:06.91ID:xMQ/Q89h
gcc でコンパイルできるようになるのが先だな
0998デフォルトの名無しさん2014/07/23(水) 18:39:21.75ID:DU5/VHeY
オープンソースにしたって誰も喜ばないだろ。
アップルはコミュニティで標準化を待つなんて悠長なこと言ってられないから勝手にどんどん機能拡張してくだろうし
GNUの連中はそれに追従できないだろう。
Appleと仕様違いすぎて誰も使わなくなったGNUのObjective-Cと同じになるのは目に見えてる
iOS/OS Xにある程度のリソースを割けるアップルのデベだけが使うのが理にかなってる
iOS/OS X専用ドメインスピーシフィックランゲージみたいなもんだ
0999デフォルトの名無しさん2014/07/23(水) 18:40:16.88ID:F2A3Bmpn
>>997 アホか、gccは捨ててClangにしてるのに。
確かSwiftはClangでコンパイルしてると聞いた。
Clangだから、CやObjective-Cと柔軟に相互乗り入れ出来るんだよ。
1000デフォルトの名無しさん2014/07/23(水) 18:43:16.96ID:F2A3Bmpn
ClangはほぼAppleが作った様な物だから他がどう言おうが勝手に発展させて行けば良い話。

Swiftライブラリは言語とは別の話。 勝手に発展させれば良い。
libcとの互換性は有るんだし。
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。