- 主题:为什么没人学 scala ?
看看 经典的 Option[Future[T]] to Future[Option[T]]
https://stackoverflow.com/questions/38226203/scala-optionfuturet-to-futureoptiont
其中一个的办法是:
```
import scala.concurrent.Future
import scala.concurrent.ExecutionContext
def f[A](x: Option[Future[A]])(implicit ec: ExecutionContext): Future[Option[A]] =
x match {
case Some(f) => f.map(Some(_))
case None => Future.successful(None)
}
```
根本原因就是
Option.map() 和 Future.map() 根本不是一个东西 也没法混在一起用
尽管它们名字一样
单单一个内裤正穿反穿的问题 就得脱下来重新穿一遍
这种问题 在很多其它语言里 根本不存在
甚至在Erlang 里也不存在
你能提供一个更简洁的办法吗?
【 在 xWvxYWYxvWx 的大作中提到: 】
: 因为绝大多数人根本学不会或者不了解。
: 最后5行,说了4个事实,居然全是错的。
: 这就很能说明问题了。
: ...................
--
FROM 52.9.227.*
网上摘抄了一点代码
耐着心 能看出来这是在干吗
为了一个 中缀表达式 搞这么大 让人无语啊
Scala 是我个人所知的 唯一一个拼命扩展 (无用) 语法的语言
别的语言 没把重点放在这个上面的
```
implicit class IntWithTimes(x: Int) {
def times[A](f: => A): Unit = {
def loop(current: Int): Unit =
if(current > 0) {
f
loop(current - 1)
}
loop(x)
}
}
scala> 5 times println("HI")
HI
HI
HI
HI
HI
```
【 在 lvsoft 的大作中提到: 】
: 强烈支持,我当初也是看到了这个就放弃了这门语言。
--
FROM 47.152.116.*
感觉啊 你这个思路 比较有代表性
这个思路 大概类似于 因为手可以擦屁股 所以要多练练手 把纸摺出花来
能解决同样的问题 方法越简单越好 简单就是美
但是很多人 不明白这么简单的道理
经常错以为 方法复杂了 就代表自己能干了
实践中 也往往是因为自己搞不定问题 所以引入更多的库啊包啊补丁代码的 试图去解决问题 根本简单不下来
这些代码 都不是我写的 有些是Scala自己标准的实现
我个人有没有能力使用Scala 是我一个人的事
你能不能 捍卫 Scala “优雅” 的实现了它想达成的目的 那可是能够帮助很多人成长的事
你不是在和我 争论 而是在 维护 Scala,或者说帮助它被多人理解和认可
你完全可以拿出具体的Scala的语言特性来 给讲讲它实现如何的好 如何的解决实际的问题啊
我个人觉得啊
几张卫生纸 足矣
冲洗器 + 卫生纸 更好
摺出花来 ? 实在没必要, 也许高档旅馆的服务员 有时间和能力 而且拿到相应的工资 去摺些卫生纸花 或者大富豪的佣人?
【 在 xWvxYWYxvWx 的大作中提到: 】
: 你这属于学不会 Scala 恼羞成怒的。
: 我完全没有兴趣指出你的具体错误,
: 也没有兴趣跟你争论。
: ...................
--
FROM 47.152.116.*
Scala idiom 啊
谈这个 简直是 温格 啊
比如 有时Scala用Java的库,... 有很多Scala程序员 会认为 Nil 是毒素 而用Option包起来成了None 就无毒了
也许啊 从个人编程语言倾向 可以 预测其 整治倾向
哈哈
【 在 lvsoft 的大作中提到: 】
: scala为了能cosplay其他dsl语言费尽了心机....
: 这么做只是看上去很美而已,它最大的副作用就是很容易形成各种方言。
--
FROM 47.152.116.*
OutOfMemory 进程被杀的 一个常见原因
【 在 sataMXH 的大作中提到: 】
: OOM什么意思?
--
FROM 47.152.116.*
似是而非
Scala 就是个 披张狼皮的 家猪
是 静态的 强类型语言
【 在 sataMXH 的大作中提到: 】
: 蟒蛇也有这种tuple吧
--
FROM 47.152.116.*
不是
比如 很多时候 瓶颈在于数据能否足量的到来
mapreduce 的一个 产生的原因就是 把 把数据推入计算 变成 计算到数据中去
spark 适合 数据收集整理好 进行集中处理
有它的适用场景 也有不适用的
而Scala 不大一样 想把自己整成 啥都适用的
【 在 sataMXH 的大作中提到: 】
: 你的意思spark性能巨差?
--
FROM 47.152.116.*
对
Go 我写过个数据存储的工具 它是个静态类型语言 强制类型转换时 我写的很难看 垃圾回收不易控
其他方面 正常吧
而Scala.... 我个人 对用它的程序员的感觉 远远 强于 对这门语言的感觉
用这门语言的 很多 是使劲朝复杂了用
这门语言瞎折腾 而用它的人 往往更是瞎折腾
【 在 sataMXH 的大作中提到: 】
: 你是不是GO和Scala都学了:)
--
FROM 47.152.116.*
DSL 这个话题 比较大 我乱扯扯
我觉得 数学语言 是最好的 DSL 符号的定义 非常清晰
如果用自然语言来描述数学问题 经常难以说清楚
根本原因是 数学本身 是一个完全理性的领域
类似的 SQL 也是基于关系数据的代数的 工作在一个清晰定义的领域上的
但是 想定义一个 一统天下的 能清晰定义出 就会各种情况的 元功能... 可能超现实了
有些逻辑 是二分的 有些 本身就是模糊的
比如 我们爱热巴 爱的愿意为她牺牲
有人 是想都不想就跳了 有人还会再想想....
而且 没什么可以挡住有人 创造性的 把 各种库 都连在一块用
那就 更纠缠不清了
从这个方面讲 整个函数编程界 都是把世界当成了一个 理性的 钢性的 一成不变的 域 了
【 在 lvsoft 的大作中提到: 】
: 其实这个feature早期也是吸引我的原因之一...
: 但后来我改变我的想法了...
: 这个问题说穿了就是个理念问题。
: ...................
--
FROM 52.9.227.*
一个广泛使用的 PG 的库 就用了 Scala 的这个垃圾
作为一个结果 我见过的一个库里有一个文本列 extended_settings 里面塞了多个东西 就是为凑数
【 在 canper 的大作中提到: 】
: 最长22还是23,一般不会用到这么多吧
--
FROM 52.9.227.*