由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - scala for comprehension 不支持 let
相关主题
大家有没有觉得Scala不如Haskell美?Scala,F#或haskell怎么用DI?
clojure这语言真不错Generator其实就是monad
大牛给讲讲monad吧?yield和goroutine啥区别?
想学FP最好不要从Scala开始clojure能单独做大系统么?
scala很牛啊fp就是Declarative Programming
推荐免费webinar for monads, in Java 8/Scala/Haskellmonad抽象程度有点高
monad确实牛FP over head很高
我还是认为scala的程序员水平高数学和编程
相关话题的讨论汇总
话题: scala话题: yield话题: let话题: list
进入Programming版参与讨论
1 (共1页)
p*****2
发帖数: 21240
1
才发现scala不支持这个,比较别扭,大牛说说是不是我理解错误呢?
这样就没有haskell的do notation好用了
l******t
发帖数: 55733
2
没有。Val 应该取消,改let where
p*****2
发帖数: 21240
3
同意大牛 貌似let是个标准

【在 l******t 的大作中提到】
: 没有。Val 应该取消,改let where
H****S
发帖数: 1359
4
for {
a <- List(1,2,3)
b = 1
} yield (a+b)
这样?
x***4
发帖数: 1815
5
我也这样想。

【在 H****S 的大作中提到】
: for {
: a <- List(1,2,3)
: b = 1
: } yield (a+b)
: 这样?

p*****2
发帖数: 21240
6

不行。你换一个位置试试?

【在 H****S 的大作中提到】
: for {
: a <- List(1,2,3)
: b = 1
: } yield (a+b)
: 这样?

x***4
发帖数: 1815
7
少了semicolon。改成:
for (
x<-List(1,2,3);
b=3)
yield x+b


【在 p*****2 的大作中提到】
:
: 不行。你换一个位置试试?

p*****2
发帖数: 21240
8
你换换位置?

【在 x***4 的大作中提到】
: 少了semicolon。改成:
: for (
: x<-List(1,2,3);
: b=3)
: yield x+b
:

x***4
发帖数: 1815
9
For里面第一个是monad。所以不能换位置。

【在 p*****2 的大作中提到】
: 你换换位置?
p*****2
发帖数: 21240
10

试试haskell?

【在 x***4 的大作中提到】
: For里面第一个是monad。所以不能换位置。
l******t
发帖数: 55733
11
let就是lamda的甜心 所以怎么用都行

【在 p*****2 的大作中提到】
:
: 试试haskell?

x***4
发帖数: 1815
12
Haskell我没有用过,所以不清楚。至于scala的for,基本上是实现下面两步的语法糖:
for(x<-xs; b) yield y 会被改写成 xs flatmap {x=> for (b) yield y}
for(x<-xs) yield y 会被改写成 xs map { x=> y}
所以x=3之类的expression不可以是for的第一个expression。另一方面,如果你需要x=
3这样的expression成为for的第一个expression,那么这个exp应该不depend onfor里
面的其他exp,所以可以加一个Val x=在for前面。
个人理解。不对请指正。

【在 p*****2 的大作中提到】
:
: 试试haskell?

1 (共1页)
进入Programming版参与讨论
相关主题
数学和编程scala很牛啊
请问有哪位师傅知道haskell语言的?推荐免费webinar for monads, in Java 8/Scala/Haskell
有没有人对curring有研究monad确实牛
Haskell很难学。。我还是认为scala的程序员水平高
大家有没有觉得Scala不如Haskell美?Scala,F#或haskell怎么用DI?
clojure这语言真不错Generator其实就是monad
大牛给讲讲monad吧?yield和goroutine啥区别?
想学FP最好不要从Scala开始clojure能单独做大系统么?
相关话题的讨论汇总
话题: scala话题: yield话题: let话题: list