fosskers / caddi-server-example

A simple Haskell server example.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

caddi-server-example

This is an example of a simple JSON-serving web server in Haskell. It utilizes the Servant library, which allows us to define our API at the type level.

Setup

まずは rustup のようなツールをインストールします。

https://www.haskell.org/ghcup/

curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh

できたら:

ghcup tui
  1. 最新の stack をインストール(cargoみたいな物)
  2. 最新の HLS をインストール(LSPです)
  3. ~/.ghcup/bin を PATH に追加
  4. エディターの haskell mode などをインストール

Terminalではまず stack ghci を開いて、 1 + 1 などができれば十分でしょう。

Serverを試すには:

stack run

概要

基本的に stack を使ってコンパイルしたりします。

Haskellの特徴:

  • Strong types
  • Laziness
  • 副作用は全部型で管理する
  • コードが清潔、メンテしやすい
  • HKTs (higher-kinded types)

型に関しては、Rustの多くの特徴がそのまま Haskell から由来します。

Rustにある、Haskellにないものは?

所有権に似た機能は最近までなかったけれど、主流ではない。

Haskellは lazy なのでIteratorsもない(その必要がないからです)。

関数しかなく、構造体の methods がない。

リンク

About

A simple Haskell server example.

License:Other


Languages

Language:Haskell 100.0%