Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Crystal 言語の紹介 (歌舞伎座.tech #9)

Crystal 言語の紹介 (歌舞伎座.tech #9)

歌舞伎座.tech #9「 異種プログラミング言語格闘勉強会 」での発表資料
http://kbkz.connpass.com/event/26677/

Pine Mizune

March 20, 2016
Tweet

More Decks by Pine Mizune

Other Decks in Programming

Transcript

  1. $SZTUBMͱ͸Կ͔   $ ݴޠ 3VCZ ඇৗʹߴ଎ දݱྗ͕๡͍͠ ੜ࢈ੑ͕௿͍ ˓

      ߴ͍දݱྗ ߴ͍ੜ࢈ੑ ࣮ߦ଎౓͕஗͍ ˓ ˓  ಉ࣌ʹ࣮ݱ
  2. <$SZTUBMͱ͸> 3VCZ෩γϯλοΫε  # A very basic HTTP server require

    “http/server” server = HTTP::Server.new(8080) do |ctx| ctx.response.content_type = “text/plain” ctx.response.print “Hello world” end puts “Listening on http://0.0.0.0:8080” server.listen 4ZOUBY͸΄΅ಉ͡
  3. <$SZTUBMͱ͸> 3VCZ෩γϯλοΫε  1.upto(100) do |i| if i % 15

    == 0 puts "FizzBuzz” elsif i % 3 == 0 puts "Fizz” elsif i % 5 == 0 puts "Buzz” else puts i end end u 3VCZ u $SZTUBM 1.upto(100) do |i| if i % 15 == 0 puts "FizzBuzz” elsif i % 3 == 0 puts "Fizz” elsif i % 5 == 0 puts "Buzz” else puts i end end
  4. <$SZTUBMͱ͸> ΦϒδΣΫτࢦ޲ u جຊ͸ 3VCZϕʔε ü Ϋϥεϕʔε ü ΦʔϓϯΫϥε ü

    μοΫλΠϐϯά ü .JYJO uඪ४Ϋϥεྫ ü 4USJOH ü 4ZNCPM ü *OU 'MPBU ü #PPM ü /JM
  5. <$SZTUBMͱ͸> ੩తܕ෇͚ def foo(x : Int) puts “Int: #{x}” end

    def foo(x : String) puts “Str: #{x}” end foo(10) #=> Int: 10 foo(“10”) #=> Str: 10 • ΦʔόʔϩʔυՄೳ • ܕΛ໌ࣔͳ͠΋Մೳ μοΫλΠϐϯά
  6. <$SZTUBMͱ͸> ωΠςΟϒίʔυग़ྗ u 3VCZ BOE$SZTUBM ͷιʔείʔυ puts (1..100_000_000) .map {

    1 }.reduce { |a, b| a + b } u $SZTUBM ࣮ߦ࣌ؒTFD ࣮ߦ࣌ؒ ࠷దԽ༗ TFD u 3VCZ ࣮ߦ࣌ؒTFD ˞.#1JODI  $SZTUBMW3VCZW
  7. <$SZTUBMͷ༏Ґ఺>࣮ߦ଎౓8"'  u 3VCZ4JOBUSB u $SZTUBM,FNBM require 'sinatra’ get '/'

    do 'Hello world!’ end require “kemal” get ”/” do “Hello World!” end Kemal.run )FMMP8PSMEΛฦ͢ͷΈ
  8. <$SZTUBMͷ༏Ґ఺>࣮ߦ଎౓8"'  3VCZ4JOBUSB $SZTUBM,FNBM ฏۉϨεϙϯε࣌ؒ NT  ЖT ϦΫΤετॲཧ਺ 

    TFD  TFD ѹ౗తͳ଎౓ࠩ ˞ࢀরXSL.BDCPPL1SP-BUFIUUQLFNBMDSDPN
  9. <$SZTUBMͷ༏Ґ఺>࣮ߦ଎౓3FEJT  u 3FEJT ΫϥΠΞϯτͷ࣮૷଎౓Λൺֱ ü ݴޠ໊ ϥΠϒϥϦ໊  ü

    $ )JSFEJT ü $SZTUBM $SZTUBM3FEJT ü (P 3BEJY ü (P 3FEJHP ü ݴޠ໊ ϥΠϒϥϦ໊  ü +BWB +FEJT ü /PEF JPSFEJT ü 3VCZ SFEJTSC ü 3VCZ SFEJTSCIJSFEJT