haskellに入門してみる
いろんな言語が気になる時期。ナナオです。 今回はHaskellに入門してみようと思います。 (以前「すごいHaskell」は読んだことがあるのですが、読むだけでコード書いてなかったのでほぼ忘れてしまいました。。もったいない!!) Haskellのセットアップ まずはHaskellを使える環境を作っていきます。 Windows11の環境でやります。(WSLは使わないのでお気をつけて!) GHCupを使ってStackやGHCなどをまとめてインストールしちゃいましょう!! (僕は最初Stackだけインストールすればいいか~とやっていたら、VSCodeの拡張機能がGHCupを使う感じになっていたので詰みました) https://zenn.dev/mod_poppo/articles/haskell-setup-2023#ghc%E3%82%92%E4%BD%BF%E3%81%86 windowsの場合はかなり長いコマンドですが、以下でインストール可能です。 Set-ExecutionPolicy Bypass -Scope Process -Force;[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; try { Invoke-Command -ScriptBlock ([ScriptBlock]::Create((Invoke-WebRequest https://www.haskell.org/ghcup/sh/bootstrap-haskell.ps1 -UseBasicParsing))) -ArgumentList $true } catch { Write-Error $_ } チュートリアルをやってみる とりあえずこのページのチュートリアルをやってみましょう。 10分で学ぶHaskell - HaskellWiki ghciは以下のように起動します。 stack ghci ghciでは:tと打つことで、変数や関数の型について知ることができます。 ghci> :t filter filter :: (a -> Bool) -> [a] -> [a] これはなんかいい機能ですね。 まずは関数定義からやっていきましょう。 適当なプロジェクトを作成します。 stack new haskell-playground これをVSCodeで開きます。 拡張機能もインストールしておきましょう。 Haskell Extension Pack - Visual Studio Marketplace では関数を定義してみましょう。 factorial 0 = 1 factorial n = n * factorial (n - 1) main = do print $ factorial 2 こんな感じでfactorial関数を定義しました。 ...