“Haskell”的版本间的差异

来自wrc's Wiki
跳到导航 跳到搜索
第3行: 第3行:
  
 
== 笔记 ==
 
== 笔记 ==
 +
 +
=== printf debugging ===
 +
 +
<syntaxhighlight lang=haskell>
 +
import Debug.Trace
 +
 +
dbg :: Show a => String -> a -> a
 +
dbg msg x = trace (msg ++ " " ++ show x) x
 +
</syntaxhighlight>
 +
 +
使用方法:把变量 <code>x</code> 换成 {{code|haskell|2=(dbg "x =" x)}}。
  
 
=== <code>let</code> 与 <code>where</code> ===
 
=== <code>let</code> 与 <code>where</code> ===

2021年10月12日 (二) 16:24的版本

Haskell 是一种函数式编程语言。

笔记

printf debugging

import Debug.Trace

dbg :: Show a => String -> a -> a
dbg msg x = trace (msg ++ " " ++ show x) x

使用方法:把变量 x 换成 (dbg "x =" x)

letwhere

let 是一个表达式,而 where 不是。where 用于给多个 guard 创建 binding,如下:

f x y
  | y > z  = ...
  | y == z = ...
  | y < z  = ...
  where
    z = x * x

三个 guard 都可使用 z。用 let 无法达到以上的效果。[1][2]

另见

外部链接

参考资料