RubyTuesday [杭州][2013年01月08号] Ruby Thursday,我们一起学 haskell

fsword · 2013年01月05日 · 最后由 heyuan 回复于 2013年01月10日 · 4833 次阅读

原帖说了什么不记得了,把重要的内容重发一下

主题 haskell 或者 monad(由主讲人定夺) 主讲 @luikore 时间 2013-01-08 晚 7:00 地址 杭州西溪路浙大科技园 c 栋 203 室

还是那句话,最好预先看看,否则效果会打折扣。

大家不见不散!!

我竟然存了原贴....

这个明明是周二...

要去,这回大家别错过了哦

标题...就是明天晚上吧?

有兴趣可以先装上 haskell-platform (linux 和 windows 见链接):

brew install haskell-platform

交互解释器 ghci (glasgow haskell compiler's interpreter)

# 可以行内用 :: 指定类型
alias ghci='ghci -XScopedTypeVariables'

源文件扩展名是 .hs, literate programing style 的扩展名是 .lhs. literate programing 是 RMS 在写 emacs 时发明的编程风格,代码和文档是反过来的,而且文档可以安排代码的顺序.

这是一个打印阶乘的程序 `fac.lhs`

首先我们引入 List 模块, 里面包含了我们想要用的库函数 foldl, 注意 `>` 开头的行会被编译

> import Data.List

`foldl` 相当于 ruby 里的 `reduce` 或者 `inject`, 但是 lambda 放前面而不是后面, 用来实现阶乘就像这样:

    fac n = foldl (\x y -> x * y) 1 [1..n]

所有运算符都是 lambda / 函数, 上面的 lambda 中的乘号用前缀写法的话就是:

    \x y -> (*) x y

这个 lambda 和 `(*)` 没什么区别, 直接用 `(*)` 好了, 代码就变成了:

> fac n = foldl (*) 1 [1..n]

打印结果:

> main = do { print (fac 12) }

编译执行:

    ghc --make fac.lhs
    ./fac

呵呵,我还怕都忘了,准备一早上再提醒一下,看来大家都很主动积极啊 在 linux 上用 haskell 我是直接 apt-get 的,不知道有没有问题,不过写了几个函数执行 ghci 貌似没有问题

apt-get install ghc

晚上得接孩子,去不了了

#6 楼 @sunfmin 去还是不去?中文太奥妙了

精神支持 @luikore,就先不去了

大概就两三个人的样子 XD

想去,但不在杭州的表示很无力

还不如用 google 环聊……

不去了。

就 3 个人,今天我们聊 javascript 了,以后都不聊 haskell 了

#14 楼 @luikore 不用啊,刚才聊 monad 很好玩

#14 楼 @luikore 早说聊 JavaScript 啊

才三个人啊,,太冷清了点吧,@luikore 得继续增加忽悠力度了

今天学会了 facebook 在你登出以后还能追踪你访问过的网站的技巧

#18 楼 @luikore 今天说的 cookie 比较简单,远不如别的有吸引力 #17 楼 @googya haskell 也不用靠忽悠,虽然工作中用的机会不多,但是思想很不错

今天晚上学了几个概念,对 monad,约束式编程,类型运算有了一点了解,很开心😄

今晚最大的收获就是学会了 Block third-party cookies and site data .

#21 楼 @Saito #18 楼 @luikore Google Analytics 使用的是第一方 cookie,这也就是谷歌经常说自己不作恶的原因

facebook 利用喜欢按钮追踪?

很多浏览器都有 do not track 功能吧,但不知到这玩意管不管用。

你们这些「骗子」, 居然在聊 javascipt.

貌似很有意思。

#24 楼 @xiaoronglv 误解呀误解,只是一开始 @Saito@luikore 在聊其它的,我来了以后讨论就基本上言归正转了吧

hooopo 用户跟踪 提及了此话题。 04月03日 10:56
需要 登录 后方可回复, 如果你还没有账号请 注册新账号