在线运行 Haskell

在浏览器中编写、编译并运行 Haskell 代码,适合学习、练习与快速验证。

Haskell 代码编辑器

输出

标准输出(stdout)

 

标准错误(stderr)

 

使用说明

  • 在左侧编辑器编写 Haskell 代码(定义 main :: IO () 并实现入口)。
  • 点击“运行代码”即可在线编译并执行程序。
  • 右侧面板展示输出与错误信息。
  • 绿色区域为标准输出(例如 putStrLn 输出)。
  • 红色区域为编译/运行错误与警告。
  • 执行信息包含退出码与运行状态。
  • 快捷键:Ctrl+Enter(Mac 上为 Cmd+Enter)。

Haskell 基础

Hello World:

main :: IO ()
main = putStrLn "Hello, Haskell!"

常用类型:

  • Int / Integer / Double
  • Bool / Char / String
  • 列表 [a] 与元组 (a,b)
  • Maybe / Either 等代数数据类型

模式匹配与递归

示例:

factorial :: Integer -> Integer
factorial 0 = 1
factorial n = n * factorial (n - 1)

高阶函数

map / filter / fold:

let xs = [1,2,3,4]
print (map (*2) xs)
print (filter odd xs)
print (foldl (+) 0 xs)

IO 与字符串

示例:

main :: IO ()
main = do
  let name = "Alice"
  putStrLn ("Hello, " ++ name)

示例程序(点击上方运行)

1. 递归计算阶乘

factorial :: Integer -> Integer
factorial 0 = 1
factorial n = n * factorial (n - 1)

main :: IO ()
main = print (factorial 5)

2. 列表最大值

myMax :: Ord a => [a] -> a
myMax [x] = x
myMax (x:xs) = max x (myMax xs)

main :: IO ()
main = print (myMax [3,7,1,9,4])