Slide 1

Slide 1 text

iOSDC 2017 Reject Conference day1 ༣ศ԰͞Μͷԋࢉࢠ @S_Shimotori

Slide 2

Slide 2 text

ͩΕ • @S_Shimotori / @S_Shimotori_pub • ͭΒֶ͍ੜ • iOSDCؔ܎3౓໨

Slide 3

Slide 3 text

Custom Operators

Slide 4

Slide 4 text

ԋࢉࢠΛࣗ࡞ʂͨͷ͍͠ʂ • xmartlabs/Eureka • ϑΥʔϜϏϧμʔ • +++ͰSectionΛ௥Ճ͢ΔͳͲ • thoughtbot/Runes • HaskellͰݟͨΑ͏ͳԋࢉࢠ͕࢖͑ΔΑ͏ʹͳΔ

Slide 5

Slide 5 text

ͲΜͳԋࢉࢠ͕࡞ΕΔͷ͔ʁ

Slide 6

Slide 6 text

͜ΕΛݟ͓͚ͯ͹׬ᘳͰ͢ʂ

Slide 7

Slide 7 text

ͳΜͱͳʙ͘๏ଇ͕͋Δʂ

Slide 8

Slide 8 text

๏ଇͦͷ1

Slide 9

Slide 9 text

ͦͷ1: ࢖͑ͦ͏ͳASCIIจࣈ͸࢖͑Δ • ݟͨ͜ͱ͋Δ΋ͷͰ΄΅શͯ • ڍ͛ΒΕ͍ͯͳ͍จࣈΛݟΕ͹ೲಘ͔΋ʁ • ɹɹɹɹɹɹɹɹɹ΍ɹɹɹɹɹɹɹɹɹɹ΋ෆՄ • ɹ ͸dot operatorͰ࢖༻Մ l 4USJOH-JUFSBMͰ࢖༻ b  LFZXPSEͷઌ಄Ͱ࢖༻ JGͳͲ  JNQMJDJUOBNFEQBSBNFUFSTͰ࢖༻ ͳͲ \^ UVQMFɼGVODUJPOͳͲͰ࢖༻ <> BSSBZMJUFSBMͳͲͰ࢖༻  ܕͷݺͼग़͠ɼ࿈ଓ͢ΔPQFSBUPSͷ෼ׂͳͲͰ࢖༻  ۠੾Γͱͯ͠࢖༻ ! BUUSJCVUFͰ࢖༻ !BWBJMBCMFͳͲ a Τεέʔϓ΍,FZ1BUI&YQSFTTJPOͰ࢖༻ @ XJMEDBSEQBUUFSOͰ࢖༻ A ༧໿ޠΛJEFOUJpFSʹ༻͍Δ࣌ʹ࢖༻

Slide 10

Slide 10 text

๏ଇͦͷ2

Slide 11

Slide 11 text

ͦͷ2: identifierͰ࢖͑Δจࣈ͸جຊతʹ࢖͑ͳ͍ • identifierͱoperator͸ผ෺ • ઐ༻ͷΤϥʔ͕ଘࡏ͢Δ • • ΋ͪΖΜΞϧϑΝϕοτ΍਺ࣈ͸࢖༻ෆՄ • ΋࢖༻ෆՄ ·Ί͖ͪ͠: ͜ͷΤϥʔจ۟͸ʮidentifier_when_expecting_operatorʯͷ໊Ͱ͔ͬ͠ΓSwiftʹ࣮૷͞Ε͍ͯ·͢ https://github.com/apple/swift/blob/bf42def404abcc9239cf7856475da2c80b86cc70/include/swift/AST/DiagnosticsParse.def#L421

Slide 12

Slide 12 text

❌ U+3008-U+3020, U+3030 ൣғμϒͬͯΔ͡ΌΜʁ U+3021-U+302Fɹ͕ ·Ί͖ͪ͠: U+3021-U+3029͸ોभ߸ᛰͱ͍͏਺ࣈɼU+302A-U+302F͸੠఺ͱ͔੠ූͱ͔ݺ͹ΕΔ΋ͷɽཁ͸தࠃޠɽ ͱ͍͏͔U+3000-U+303Fࣗମ͕CJK Symbols and Punctuationͱ͍͏ΧςΰϦɽ

Slide 13

Slide 13 text

๏ଇͦͷ3

Slide 14

Slide 14 text

ͦͷ3: ਺ֶه߸͕݁ߏ࢖͑Δ • ໼ҹͱ͔਺ֶه߸ͱ͔͕·Δͬͱ࢖͑Δ • mattt/Eulerͱ͍͏ϥΠϒϥϦ(?)͕͋Δ͘Β͍ • ɹɹɹɹ͸࢖͑ͳ͍ ΄͔ଟ਺ ਖ਼֬ʹ͍͏ͱɼUnicodeͰʮArrowsʯʮMathematical OperatorsʯʮMiscellaneous TechnicalʯϒϩοΫͱݺ͹Ε͍ͯΔͱ͜Ζ͕ ·Δ·Δ࢖༻Մೳʹͳ͍ͬͯΔ

Slide 15

Slide 15 text

๏ଇͦͷ4

Slide 16

Slide 16 text

ͦͷ4 : ҙ֎ͱׅހ΍ϓϥΠϜ͕࢖͑ͪΌ͏ • ASCIIจࣈͰμϝͰ΋ɼࣅͨจࣈ͕࢖͑Δ͜ͱ͕͋Δ • • • • ٯʹ͍͏ͱׅހ΍ΫΥʔτͷྨ͸ม਺໊ʹ࢖͑ͳ͍

Slide 17

Slide 17 text

๏ଇͦͷ5

Slide 18

Slide 18 text

ͦͷ5: ԋࢉࢠʹ࢖͑Δֆจࣈ΋͋Δ • ࢖͑Δͷ͸U+3030·ͰͷจࣈͷҰ෦ͱࢥͬͯOK • ͸U+1F436ɼ͸U+1F42E • ֆจࣈͷଟ͘͸U+1F000Ҏ߱Ͱൣғ֎ • U+3030Ҏલʹ͋Δֆจࣈ͸࢖͑Δ͔΋ʂ

Slide 19

Slide 19 text

U+3030·ͰͷͲΕ͕ֆจࣈͳͷ͔ • The Unicode Consortium͕ܾΊ͍ͯΔ • ΄ͱΜͲ͕࢖͑ΔͷͰɼҰཡΛݟͯωλΛ࿅Δͱྑ͠ • ࢖͑ͳ͍ࢠ: • U+FE0FͱU+FE0E͕ԋࢉࢠ໊ͷ2จࣈ໨Ҏ߱Ͱ࢖͑Δ • ͭ·ΓֆจࣈελΠϧͱςΩετελΠϧ͸ผ෺ѻ͍ Ұཡ http://unicode.org/Public/emoji/5.0/emoji-data.txt https://ja.wikipedia.org/wiki/Unicode%E3%81%AEEmoji%E3%81%AE%E4%B8%80%E8%A6%A7

Slide 20

Slide 20 text

͍͍ͩͨ͜Μͳײ͡ʂ

Slide 21

Slide 21 text

·ͱΊ • ࢖͑ͦ͏ͳASCIIจࣈ͸࢖͑Δ • identifierͰ࢖͑Δจࣈ͸جຊతʹ࢖͑ͳ͍ • ਺ֶه߸͕݁ߏ࢖͑Δ • ҙ֎ͱׅހ΍ϓϥΠϜ͕࢖͑Δ • ಉ͡छྨͷจࣈ͕શ෦࢖͑ΔΘ͚Ͱ͸ͳ͍ • ԋࢉࢠʹ࢖͑Δֆจࣈ΋͋Δ

Slide 22

Slide 22 text

࠷ޙʹ΋͏1ͭ

Slide 23

Slide 23 text

࣍ͷจࣈ͸ԋࢉࢠʹ࢖͑Δͷ͔ʁ ֆจࣈ͔Ͳ͏͔ ԋࢉࢠʹ࢖͑Δ͔ ὺ ˟ ˜ š ℗ ™ ℠ ֆจࣈ͔Ͳ͏͔ ԋࢉࢠʹ࢖͑Δ͔ ὺ O : ˟ O : ⁴ O O ˜ : : š : : ℗ O O ä : O ℠ O O

Slide 24

Slide 24 text

Θ͔ΒΜʂʂʂ

Slide 25

Slide 25 text

No content