v*9
2 楼
如果递交境内转身份申请超过180天,移民局没转好,超过180天后,必须回国吗,回国
再签好签过吗?
再签好签过吗?
Y*2
3 楼
飞机晚点,三番那边气候不好,那边机场老改时间。。。
Ughhhhh
Ughhhhh
h*0
4 楼
进该频道方法:
不断点击wings of liberty下面那个原子核图标,多点几次就来了。
奶牛们,进来吧!
不断点击wings of liberty下面那个原子核图标,多点几次就来了。
奶牛们,进来吧!
y*7
5 楼
Free $200 from Amex and Chase
1.免费的100刀 Chase SapphireSM Card 只需消费一笔
http://creditcardbonus.spaces.live.com/blog/
2.Free $100 amazon gift card 申请 starpoints卡,只需消费一笔
http://tinyurl.com/sobigbonus
3.$75 from ing direct account
http://creditcardbonus.spaces.live.com/blog/cns!D1B720FC26BCB01B!120.entry
1.免费的100刀 Chase SapphireSM Card 只需消费一笔
http://creditcardbonus.spaces.live.com/blog/
2.Free $100 amazon gift card 申请 starpoints卡,只需消费一笔
http://tinyurl.com/sobigbonus
3.$75 from ing direct account
http://creditcardbonus.spaces.live.com/blog/cns!D1B720FC26BCB01B!120.entry
S*y
6 楼
本届快男,舞台上一水儿刘海,剩下的就是黑框眼镜~~~~~~只有个别清爽平头面容干净
~~~~那个叫什么来着,好像叫赵帆,外形还不错~~~
~~~~那个叫什么来着,好像叫赵帆,外形还不错~~~
T*1
7 楼
把Scala往LinkedIn上一挂,马上10+的猎头联系啊。
f*n
8 楼
可以申请ITIN。
那个数目也太小了吧?应该达不到必须报税的程度
那个数目也太小了吧?应该达不到必须报税的程度
U*S
9 楼
没有180天之说,申请有结果之前可以合法停留。
c*o
13 楼
要不要来我这儿试试?
好的scala 人才难找。
好的scala 人才难找。
f*t
16 楼
你等我们干啥?
c*o
18 楼
看看id,发觉被骗了。
c*o
25 楼
写个简单的recusive functional的bubble sort吧
你写的这个在scala doc上抄都抄得到
你写的这个在scala doc上抄都抄得到
T*1
28 楼
你这个外行外大了。scala的精髓是flatMap,不是递归
T*1
30 楼
val ll = Seq(2,5,1,7,3,6)
ll.sorted
ll.sortWith(_ > _)
ll.sorted
ll.sortWith(_ > _)
c*o
36 楼
不,我意思是 实现类
Option[A]
Option 可以是 None 或者 Some[A]
至少实现以下三个方法
flatMap
map
zip
我其实不是开玩笑,你写写我说的两个题,碰到的问题就知道送我为什么问。
里面包括了好多重要的东西。
bubble sort 不要 stack overflow啊,要都是immutable啊
为啥选那三个method来做option,怎么实现[A] ?
Option[A]
Option 可以是 None 或者 Some[A]
至少实现以下三个方法
flatMap
map
zip
我其实不是开玩笑,你写写我说的两个题,碰到的问题就知道送我为什么问。
里面包括了好多重要的东西。
bubble sort 不要 stack overflow啊,要都是immutable啊
为啥选那三个method来做option,怎么实现[A] ?
H*S
38 楼
monad 其实只需要unit 和 flatmap就够了
zip就是一个flatmap加map的showcase。其实用pattern match也可以。
sealed trait Option[+A] {
def map[B](f: A => B): Option[B]
def isEmpty: Boolean
def get: A
def flatMap[B](f: A => Option[B]) = if (isEmpty) None else f(this.get)
def zip[B](ob: Option[B]): Option[(A, B)] = this flatMap (a => ob map (b =
> (a, b)))
}
case object None extends Option[Nothing] {
override def map[B](f: A => B) = None
override def get: A = throw new Exception("cannot get none")
override def isEmpty = true
}
case class Some[+A](a: A) extends Option[A] {
override def map[B](f: A => B) = Some(f(a))
override def get: A = a
override def isEmpty = false
}
object Option {
def unit(a: A) = Some(a)
def empty[A]: Option[A] = None
}
zip就是一个flatmap加map的showcase。其实用pattern match也可以。
sealed trait Option[+A] {
def map[B](f: A => B): Option[B]
def isEmpty: Boolean
def get: A
def flatMap[B](f: A => Option[B]) = if (isEmpty) None else f(this.get)
def zip[B](ob: Option[B]): Option[(A, B)] = this flatMap (a => ob map (b =
> (a, b)))
}
case object None extends Option[Nothing] {
override def map[B](f: A => B) = None
override def get: A = throw new Exception("cannot get none")
override def isEmpty = true
}
case class Some[+A](a: A) extends Option[A] {
override def map[B](f: A => B) = Some(f(a))
override def get: A = a
override def isEmpty = false
}
object Option {
def unit(a: A) = Some(a)
def empty[A]: Option[A] = None
}
k*g
40 楼
写个 InversePermutation 吧
要 immutable 和 O(N) 的
http://mathworld.wolfram.com/InversePermutation.html
【在 c******o 的大作中提到】
: 写个简单的recusive functional的bubble sort吧
: 你写的这个在scala doc上抄都抄得到
c*o
42 楼
monad只要flatMap
map是 functor 的标志
zip 是 applicative functor 的标志
都可以由 flatMap和Some constructor实现
所以monad 是 applicative,applicative是 functor
=
【在 H****S 的大作中提到】
: monad 其实只需要unit 和 flatmap就够了
: zip就是一个flatmap加map的showcase。其实用pattern match也可以。
: sealed trait Option[+A] {
: def map[B](f: A => B): Option[B]
: def isEmpty: Boolean
: def get: A
: def flatMap[B](f: A => Option[B]) = if (isEmpty) None else f(this.get)
: def zip[B](ob: Option[B]): Option[(A, B)] = this flatMap (a => ob map (b =
: > (a, b)))
: }
map是 functor 的标志
zip 是 applicative functor 的标志
都可以由 flatMap和Some constructor实现
所以monad 是 applicative,applicative是 functor
=
【在 H****S 的大作中提到】
: monad 其实只需要unit 和 flatmap就够了
: zip就是一个flatmap加map的showcase。其实用pattern match也可以。
: sealed trait Option[+A] {
: def map[B](f: A => B): Option[B]
: def isEmpty: Boolean
: def get: A
: def flatMap[B](f: A => Option[B]) = if (isEmpty) None else f(this.get)
: def zip[B](ob: Option[B]): Option[(A, B)] = this flatMap (a => ob map (b =
: > (a, b)))
: }
H*S
46 楼
如果只有flatMap,unit是必须要有的,否则map无从实现
def map[B](f: A => B): Option[B] = this flatMap (a => unit(f(a)))
这些细节对于application developer来说其实并不重要,大多数人实际过程中直接让
for comprehension做所有的heavy lifting
def zip[A, B](oa: Option[A], ob: Option[B]) = for {
a b } yield (a, b)
BTW, 我个人其实比较偏向这样写来着
def zip[A, B](oa: Option[A], ob: Option[B]) = (oa, ob) match {
case (Some(a), Some(b)) => Some((a, b))
case _ => None
}
而且个人认为对于scala的使用不用过于强调它的FP特性。我之前写程序过于强调
procedure一定要足够pure,如果有一个var存在即便是在actor内部,那就像吃了苍蝇
一样难受。其实这个根本没有必要,学Scala程序的至高原则是be expressive-别人一
看就知道你的程序是在干什么,如果var,while loop甚至是breakable可以让程序可读
性增加,那就要毫不犹豫的使用。
【在 c******o 的大作中提到】
: monad只要flatMap
: map是 functor 的标志
: zip 是 applicative functor 的标志
: 都可以由 flatMap和Some constructor实现
: 所以monad 是 applicative,applicative是 functor
:
: =
def map[B](f: A => B): Option[B] = this flatMap (a => unit(f(a)))
这些细节对于application developer来说其实并不重要,大多数人实际过程中直接让
for comprehension做所有的heavy lifting
def zip[A, B](oa: Option[A], ob: Option[B]) = for {
a b } yield (a, b)
BTW, 我个人其实比较偏向这样写来着
def zip[A, B](oa: Option[A], ob: Option[B]) = (oa, ob) match {
case (Some(a), Some(b)) => Some((a, b))
case _ => None
}
而且个人认为对于scala的使用不用过于强调它的FP特性。我之前写程序过于强调
procedure一定要足够pure,如果有一个var存在即便是在actor内部,那就像吃了苍蝇
一样难受。其实这个根本没有必要,学Scala程序的至高原则是be expressive-别人一
看就知道你的程序是在干什么,如果var,while loop甚至是breakable可以让程序可读
性增加,那就要毫不犹豫的使用。
【在 c******o 的大作中提到】
: monad只要flatMap
: map是 functor 的标志
: zip 是 applicative functor 的标志
: 都可以由 flatMap和Some constructor实现
: 所以monad 是 applicative,applicative是 functor
:
: =
c*o
50 楼
unit 就是some constructor
你要自己做monad 的时候就有用了。
再比如monad transformer, 你要做个既是option,又是future的class,这时候这些知
识就有用了。
再说,作个 concurrent parser validate input, 你最好还是用 applicative
functor, 而不是monad, 这时候这些知识又有用了。
【在 H****S 的大作中提到】
: 如果只有flatMap,unit是必须要有的,否则map无从实现
: def map[B](f: A => B): Option[B] = this flatMap (a => unit(f(a)))
: 这些细节对于application developer来说其实并不重要,大多数人实际过程中直接让
: for comprehension做所有的heavy lifting
: def zip[A, B](oa: Option[A], ob: Option[B]) = for {
: a : b : } yield (a, b)
: BTW, 我个人其实比较偏向这样写来着
: def zip[A, B](oa: Option[A], ob: Option[B]) = (oa, ob) match {
你要自己做monad 的时候就有用了。
再比如monad transformer, 你要做个既是option,又是future的class,这时候这些知
识就有用了。
再说,作个 concurrent parser validate input, 你最好还是用 applicative
functor, 而不是monad, 这时候这些知识又有用了。
【在 H****S 的大作中提到】
: 如果只有flatMap,unit是必须要有的,否则map无从实现
: def map[B](f: A => B): Option[B] = this flatMap (a => unit(f(a)))
: 这些细节对于application developer来说其实并不重要,大多数人实际过程中直接让
: for comprehension做所有的heavy lifting
: def zip[A, B](oa: Option[A], ob: Option[B]) = for {
: a : b : } yield (a, b)
: BTW, 我个人其实比较偏向这样写来着
: def zip[A, B](oa: Option[A], ob: Option[B]) = (oa, ob) match {
c*o
52 楼
当然对 scala 要灵活,内部的 var 完全没必要改成用 val。
但是关键的是需要改的时候你能改。
但是关键的是需要改的时候你能改。
T*1
54 楼
那我先写半个bubble sort吧
//effectively this method makes the last element the max in Seq
def bubbleUp(list: Seq[Int]): Seq[Int] = list match {
case x :: y :: rest => {
if ( x > y) y +: bubbleUp (x +: rest)
else x +: bubbleUp ( y +: rest)
}
case x::rest => Seq(x)
case _ => Seq.empty
}
这剩下的双重循环是也用recursion呢,还是可以用循环?
【在 c******o 的大作中提到】
: 当然对 scala 要灵活,内部的 var 完全没必要改成用 val。
: 但是关键的是需要改的时候你能改。
//effectively this method makes the last element the max in Seq
def bubbleUp(list: Seq[Int]): Seq[Int] = list match {
case x :: y :: rest => {
if ( x > y) y +: bubbleUp (x +: rest)
else x +: bubbleUp ( y +: rest)
}
case x::rest => Seq(x)
case _ => Seq.empty
}
这剩下的双重循环是也用recursion呢,还是可以用循环?
【在 c******o 的大作中提到】
: 当然对 scala 要灵活,内部的 var 完全没必要改成用 val。
: 但是关键的是需要改的时候你能改。
T*1
56 楼
补全:
def bubbleUp(list: Seq[Int]): Seq[Int] = list match {
case x :: y :: rest => {
if ( x > y) y +: bubbleUp (x +: rest)
else x +: bubbleUp ( y +: rest)
}
case x::rest => Seq(x)
case _ => Seq.empty
}
def sorting(list: Seq[Int]): Seq[Int] = list match {
case s if s.length < 2 => list
case s => {
val sorted = bubbleUp(s)
sorting(sorted.dropRight(1)) :+ sorted.last
}
}
//repl test
scala> sorting(Seq(7,6,5,4,3,10,2,1))
res0: Seq[Int] = List(1, 2, 3, 4, 5, 6, 7, 10)
【在 c******o 的大作中提到】
: 当然对 scala 要灵活,内部的 var 完全没必要改成用 val。
: 但是关键的是需要改的时候你能改。
def bubbleUp(list: Seq[Int]): Seq[Int] = list match {
case x :: y :: rest => {
if ( x > y) y +: bubbleUp (x +: rest)
else x +: bubbleUp ( y +: rest)
}
case x::rest => Seq(x)
case _ => Seq.empty
}
def sorting(list: Seq[Int]): Seq[Int] = list match {
case s if s.length < 2 => list
case s => {
val sorted = bubbleUp(s)
sorting(sorted.dropRight(1)) :+ sorted.last
}
}
//repl test
scala> sorting(Seq(7,6,5,4,3,10,2,1))
res0: Seq[Int] = List(1, 2, 3, 4, 5, 6, 7, 10)
【在 c******o 的大作中提到】
: 当然对 scala 要灵活,内部的 var 完全没必要改成用 val。
: 但是关键的是需要改的时候你能改。
相关阅读
How to kill a window without title?Top 100 H1B Visa Sponsors in ITC#和C++的reference有什么不同?How does matlab optimization deal with singular matrix?question on TCP slow startAny difference between class and typename identifier?How to change the Static Font size and color of title in GUI in Chow to write C++ under Unix/LinuxPHP语法一问是不是题出错了?如何将屏幕显示通过网络实时传到另一台机器?一道c++ 题, 找出duplicate numbers一个让我比较困惑的问题 c++ inheritencearchitect?some interview questions i met and remembered这里有没有人用OpenSSL的?Refactoring long class step by step (2)问一道排序题目system call怎么确定路径?why i can't edit posts?