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。
: 但是关键的是需要改的时候你能改。
相关阅读
如何在数组中存无限量的元素?比较复杂高手请进一道c/c++的面试题请推荐一本经典的讲编译器的书有人export class from a dll 吗?What does C++ program return to the operating system?【讨论】为什么要用友员来实现算符重载?Version Control Software (转载)再 次 请 教 : 关 于 writing to a file 用 Perl for CGIstl的nth_element的复杂度是不是O(N)?一个算法问题哪儿有经典的C++ programing 习题集嘛?How to judge if it is a number in C++请加大家:编程的时候如何返回错误? (转载)问个时钟的问题谁能说说Perl, Python, Tcl各自的优缺点?主要应用场合?Re: 110道C++面试题目,你会做多少? (转载)a question regarding....Windows下面有没有类似Valgrind的免费内存工具?怎么用lex处理DFA?