コンテンツにスキップ

Haskell 数列

この sample は小さな Haskell ノートです。読者が数列の parameter を変えると、build 時に作られた WASI module が browser で実行され、結果を確認できます。

  • 数列 parameter 用の reactive Haskell input。
  • lifted import を使う standard-library Haskell code。
  • putStrLn から capture される text output。

この cell は scale した三角数を計算します。delta output を切り替えると、隣り合う項の差を確認できます。

Haskell + WASI

Explore a Haskell series

Cell actions
Cell inputs
import Data.List (intercalate)

let indexes = [1 .. count]
let values = map (\n -> multiplier * n * (n + 1) `div` 2) indexes
let deltas = zipWith (-) (drop 1 values) values

putStrLn (label ++ ": " ++ intercalate ", " (map show values))
putStrLn ("total = " ++ show (sum values))

if show_deltas
  then putStrLn ("deltas = " ++ intercalate ", " (map show deltas))
  else putStrLn "deltas hidden"

Waiting for the runtime to start.

Haskell セルは standard library に収まる deterministic な例に向いています。短い functional transformation で結果を説明したいときに使います。