一段很有代数味道的代码

一段很有代数味道的代码

来自haskell 99题 http://haskell.org/haskellwiki/99_questions/21_to_28

 

--Insert an element at a given position into a list.

insertAt :: a -> [a] -> Int -> [a]            

 

我本来的写法是

insertAt x xs pos = let ss = splitAt pos xs
                             in fst ss ++ [x] ++ snd ss
 
答案里的写法很妙

insertAt x xs pos = let (ys,zs) = splitAt pos xs
                    in ys ++ [x] ++ zs
 

我的思想仍然有命令式的味道,没想到还有这么"代数式"的写法。haskell里的“let"绝对就是数学里的“设“ ,太妙了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值