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。
: 但是关键的是需要改的时候你能改。
相关阅读
react is total crap有大牛可以解释下bloom filter是在什么条件下使用最好请教一下大家对于职业发展的一些看法c的问题search in dictionary is O(1)难道swift要一统江湖Facebook开源了围棋人工智能 DarkForest你们吵着要javascript的: How to delete the last line in the file in node.js?python大家用什么IDE?请问有什么办法抽取出以下电台的流媒体地址?VisualStudio的LoadTest咋入门?es2016先进生产力来了请教一个图像相关的问题{C语言}请教如何通过变量访问结构体内的各个属性Linus Torvalds因内核注解标点格式发飙 solidot teikaei 21小时54分钟前 Linus Torvalds在Linux内核邮件开发者列表上再次发飙,将部分程序员偏爱的代码注解标点格式称为“脑残”。他强烈反对的注解格式类似:/* This is disgusting drug-induced * crap, and should die */(具体见下图) http://static.cnbetacdn.com/article/2016/0713/00a2039be872980.png 和/* This is also very nasty * and visually unbalanced */ 他个人支持的格式类似: /* This is a comment */ 和 /* * This is also a comment, but it can now be cleanly * split over multiple lines */连scala都出series了go中如何在一行中定义多个不同类型的局部变量,并且初始化?马斯克:我们活在真实世界的概率只有十亿分之一 (转载)多少公司用 java guice 这烂玩意?