山寨 sum 函式时:
sum' xs = foldl (\acc x -> acc + x) 0 xs
同:
sum' = foldl (+) 0
?! @___@ 俺感受出的:
- acc 只是常用的累加指代,类似 xs 没有具体含义的?
- xs 两边儿都有可以消去,,
- + 其实是个函式:
(+) :: Num a => a -> a -> a
接受一个参数,返回一个新函式
- \acc x -> acc + x 这么大个匿名函式,怎么就变成 (+) 的?
--
人生苦短, Pythonic! 冗余不做,日子甭过!备份不做,十恶不赦!
俺: http://about.me/zoom.quiet
文字协议: http://creativecommons.org/licenses/by-sa/2.5/cn/
ghci> :t 是个好工具;
- 俺继续乱感觉:
+ \acc x -> acc + x 写成独立函式
let add' = \appd x -> appd + x
+ :t add'
add' :: Integer -> Integer -> Integer
+ 很象 (+) 的了,,,
+ ad'd 4 5 同 4 `ad'd` 5
+ 那么,只要两个函式 :t 起来,使用起来一样,就可以直接替换 ?!
可,没有 curry 化什么事儿吼?!
那么:
let a'dd appd x = appd + x
:t a'dd
a'dd :: Num a => a -> a -> a
let ad'd = (+)
也就成立了,,,
哈!!! curry 化,就是数学里的消元?!
lyah 真心好书,代码选择,描述手法,,,没有压力的进入 FP 世界,,,
不过, curry 化太神奇了,俺有点转不过筋来,,,
山寨 sum 函式时:
sum' xs = foldl (\acc x -> acc + x) 0 xs
同:
sum' = foldl (+) 0
?! @___@ 俺感受出的:
- acc 只是常用的累加指代,类似 xs 没有具体含义的?
- xs 两边儿都有可以消去,,
- + 其实是个函式:
(+) :: Num a => a -> a -> a
接受一个参数,返回一个新函式
- \acc x -> acc + x 这么大个匿名函式,怎么就变成 (+) 的?
--
人生苦短, Pythonic! 冗余不做,日子甭过!备份不做,十恶不赦!
俺: http://about.me/zoom.quiet
文字协议: http://creativecommons.org/licenses/by-sa/2.5/cn/
--
您收到此邮件是因为您订阅了 Google 网上论坛的“HaskellCUG”论坛。
要向此网上论坛发帖,请发送电子邮件至 haske...@googlegroups.com。
要取消订阅此网上论坛,请发送电子邮件至 haskellcug+...@googlegroups.com。
若有更多问题,请通过 http://groups.google.com/group/haskellcug?hl=zh-CN 访问此网上论坛。
--
人生苦短, Pythonic! 冗余不做,日子甭过!备份不做,十恶不赦!
俺: http://about.me/zoom.quiet
文字协议: http://creativecommons.org/licenses/by-sa/2.5/cn/
--
您收到此邮件是因为您订阅了 Google 网上论坛的"HaskellCUG"论坛。
要向此网上论坛发帖,请发送电子邮件至 haske...@googlegroups.com。
要取消订阅此网上论坛,请发送电子邮件至 haskellcug+...@googlegroups.com。
若有更多问题,请通过 http://groups.google.com/group/haskellcug?hl=zh-CN 访问此网上论坛。
- 嗯嗯嗯,小黄出没了!! 最近想用 haskell 实现个小的 api 服务有问题,随时吼哈!
- 这种形式化的表述已经忘記了,开始回忆,,
a -> b -> c <=> a -> (b -> c)
意思是?
- 一个 接收两个 a,b 参数 输出一个值 的函式
- 等价于 接收一个参数a 输出一个新的函式 该函式接收 一个参数 b 输出一个值 c
是也乎?!
所以 \acc x -> acc + x
即:
a -> b -> c
等于
((+ a)b)
即
a -> ( b -> c )
--
人生苦短, Pythonic! 冗余不做,日子甭过!备份不做,十恶不赦!
俺: http://about.me/zoom.quiet
文字协议: http://creativecommons.org/licenses/by-sa/2.5/cn/
- 回到了方程式的結合律年代,,,
- 继续理解ing..