LoginSignup
16
16

More than 5 years have passed since last update.

マルチパラダイム言語Haskellを入門するぜ!、やべぇ、超手続きなんすけど!!!!

Last updated at Posted at 2015-01-06

いやいや、みなさい、最近どうだい? 今日はとりあえず、テンションを上げて記事書いていくよ!

いやー、最近ね。なんか、みんな、変なことばっかり言ってるでしょ? もー、どうしようもなくどーでも良いんだそれ。壁に毛生えてるらしい騒ぎみたいなのを眺めてたら、なんか変なこと言ってるしね。みんな。もぉーわけんわかんないよね! サンショートーメーとか!フックサヨウとか、チエンヒョーカとかさ! お経かよ!

そんなの、ドーデモ良いからさ、楽しい話題するよ!

なんだって、いまいろんなところで、話題沸騰中のHaskellだよ!たのしーよ!

なんかね、僕チンの周りでは「手続き型言語だよ!」って言われたんだ。なんのこっちゃわからなかったけど、C言語っぽく書けるやしーぜ!やべー、頭悪い僕でもできる!やるしかないねこりゃ。

Hello World

さて、なにからって、もちろん、Hello Worldからさ! 見てごらん!

helloworld.hs
main = print "Hello World"

ほら見てごらん! 簡単だねー!
え?焦らしてことが、大人だってぇ? じゃあ焦らしながら表示させるよ?

helloworld2.hs
main = do
  print "Hello"
  print " "
  print "World"

ね?どうだい、手続きだろ?

じょーけんぶんき!

まぁ、プログラミングって条件分岐するよね! Haskellも条件分岐できるよ! みてごらん! "stop"って言えば止ってくれるプログラムだよ!

stop.hs
main = do
  input <- getLine
  if input == "stop" then
    print "ok"
  else
    main

ループだよ!

いやね、やっぱりプログラムってループしてこそ、ナンボでしょ!いやーHaskellにもforがあるよ見てごらん! 1から10まで数えるよ!

count10.hs
import Control.Monad

main = do
  forM_ [1..10] $ \i  -> do
    print i

例題:FizzBuzz

HaskellでFizzBuzzやるよ! 見てごらん!

fizzbuzz.hs
import Control.Monad

main = do
  forM_ [1..100] $ \i -> do
    if mod i 15 == 0 then
      print "fizzbuzz"
     else if mod i 5 == 0 then
      print "buzz"
     else if mod i 3 == 0 then
      print "fizz"
     else
      print i

わー、すごい簡単だね☆

まとめ

Haskellは簡単で、たのしいからみんなやろうね☆!

最後に

なんかね、関数型言語は短かく書けるらしいから、記事も短くかいちゃった。

けど、しょーじき短く書けるかシラネ。

16
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
16