由买买提看人间百态

topics

全部话题 - 话题: clojure
首页 上页 1 2 3 4 5 6 7 8 9 10 (共10页)
h*i
发帖数: 3446
1
来自主题: _FunctionalProgramming版 - SQL-like DSL parser
Basically, I want to use clojure. There are a few parser generators written
in idiomatic clojure, but are too young to be usable.
I have now decided to just use ANTLR to generate the AST, and work with the
AST in clojure.
Hey, you are the one who quited my club, right? Why quit? It's just a place
to share ideas.
m******t
发帖数: 1171
2
来自主题: Military版 - 王垠:程序员的心理疾病
码农们过来,老王给你们号脉了。
http://news.mydrivers.com/1/292/292325.htm
说实话,虽然似乎为之奋斗了十多年,在真正进入软件行业的短短一年之后,我已经对
它感到相当的厌倦了。这并不是说这个行业没有前景,而是在这个行业工作,其实很难
得到心理上的快乐。
人们说女怕嫁错郎,男怕入错行。我并不认为自己入错了行,我仍然很喜欢设计程序和
语言,而且我显然是这个领域的王牌之一。然而我却看到了这个行业里的无限混沌,让
我觉得喘不过气来。几十年的垃圾设计堆积在那里,却没有人试图把它们清理掉,权威
主义盛行。无论你在哪个公司,哪个地方,只要跟程序员说话,十有八九会谈不来。非
常扫兴不说,甚至感觉很伤自尊。
久而久之我发现了,由于程序员工作的性质,他们受到的“熏陶”,形成了一种行业性
的心理疾病。这里我就简单的把我所观察到的一些症状总结一下。
无自知之明
由于程序员的工作最近几年比较容易找,工资还不错,所以很多程序员往往只看到自己
的肚脐眼,看不到自己在整个社会里的位置其实并不是那么的关键和重要。很多程序员
除了自己会的那点东西,几乎对其它领域和事情完全不感兴趣,... 阅读全帖
t****a
发帖数: 1212
3
来自主题: JobHunting版 - DP感受 (高手请绕行)
楼上的都是大牛,抛砖引玉,介绍介绍偷懒的办法
clojure上面的DP可以用memoize recusion function来做,懒汉专用工具 :)
但是这样的recusion还是有可能stack overflow,怎么办呢?
懒汉的办法就是再构造一个lazy sequence从小到大call过去,就保证了recusion不太
会发生了
这样的话,如果memoize太多东西了可能会out of memory,怎么办呢?
在github有clojure更加高级的memoize package,可以搞些什么先进先出或者动态的换
入换出之类的memoize,在小内存机器上可以避免out of memory problem。
t****a
发帖数: 1212
4
1、最简单办法是穷举, choose(m, n),但计算量太大
2、改进的办法是搜索,也就是给出coin集合的情况下,搜索另一个更好的coin集合。
可以一步步去搜索,前提是本题的解要满足局部最优解=全局最优解的条件(我还不会
证明这一点)。这个方法的计算复杂度已经大大低于1
3、更好的的办法是迭代法,通过n-1个coin的解来算n个coin的解
4、可能存在某个解析的方法(比如写出方程式,求偏导数=0,解方程组)一步计算出
所有的coin取值。方程组可以写出,但由于存在coin的取值全部为正整数的约束条件,
偏倒数=0无法得到正整数解。
呼唤高人来给出3、4的解法。
----------------------------------------
推不出策略3的解,所以我去尝试策略2:
首先要猜一个不错的初始取值,
然后在它的基础上进行搜索。
我猜的解是:
C_n = (M^(n-1))^(1/n)
C_{n-1} = (M^(n-2))^(1/(n-1))
...
C_1 = (C_2^0)^1 = 1
clojure code如下 (不包含搜索的部分)
(use 'clojure... 阅读全帖
t****a
发帖数: 1212
5
来自主题: JobHunting版 - G电面一题
; quick clojure solution: dp with memoize function.
(use 'clojure.string)
;; define the map
(def alphabet (map #(str (char %)) (range 97 123)))
(def number (map #(str (inc %)) (range 26)))
(def n2a (apply assoc {} (interleave number alphabet)))
;; implement dp with memoize function
(def number-translate (memoize (fn [long]
(cond (blank? long) [""]
(= (count long) 1) (if (contains? n2a long)
[(n2a long)]
[])
:else (let ... 阅读全帖
t****a
发帖数: 1212
6
来自主题: JobHunting版 - 一道复杂的题,求解法
能帮我看看结果对不对好么?不好意思,我还是用clojure写的
(use 'clojure.set)
;; main function: O(n^3) time O(n^2) space

(defn best-cut [branch-string]
(do
(defn parse-branch [branch]
(vec (map #(- (int %) (dec (int \1))) branch)))
(def branch (parse-branch branch-string))
(def sum-stick
(memoize (fn [i k] ; k > 0
(let [j (dec (+ i k))
xj (get branch j)]
(if (== k 1)
xj
(+ xj (sum-stick i (dec k... 阅读全帖
t****a
发帖数: 1212
7
来自主题: JobHunting版 - Solve sudoku in parallel
这是很有趣的问题: 如何编写并行的recusion?
我在i5 macbook pro上做了个小试验: 并行的recusion based fib函数,用FP语言(
clojure)来实现:
单thread版本:
(defn fib [n]
(if (< n 2)
n
(apply + (map fib [(dec n) (- n 2)]))))
(time (fib 32)); "Elapsed time: 1851.765 msecs"
并行版本:
(defn pfib [n m]
(if (< n 2)
n
(if (> (- m n) 4)
(apply + (map fib [(dec n) (- n 2)]))
(apply + (pmap #(pfib % m) [(dec n) (- n 2)]))
)))
(time (pfib 32 32)); "Elapsed time: 1170.566 msecs"
用clojure写并行很容易,将map改为pmap就可以了。从速度上看,提高了接近1倍... 阅读全帖
t****a
发帖数: 1212
8
一行搞定(clojure):
(use 'clojure.string)
(let [x ["apple Orange" "ORANGE apple" "APPLe oRange" "HI There" "THERE hI"]]
(map last (partition-by #(sort (split (upper-case %) #" ")) x)))
; ("APPLe oRange" "THERE hI")
r*******n
发帖数: 3020
9
最能体现functional programming的思维的。
书clojure programming 和 joys of clojure 都看过了,
想练练。
谢谢!
t****a
发帖数: 1212
10
来自主题: JobHunting版 - 大家业余时间都学点啥呀?
如果说好玩的话,显然是clojure好玩..真的,相信我。巨好玩。
不过我估计clojure命里注定了永远只有一小撮人会喜欢会去用。
t****a
发帖数: 1212
11
来自主题: JobHunting版 - facebook hackercup里的一道题
俺也贴一个.. 正好学了frequencies这个函数。
(defn times [map-1 map-2]
(apply min (map #(if (contains? map-2 %)
(quot (map-2 %) (map-1 %))
0) (keys map-1))))
(let [input-file "./qualification/alphabetsoup/alphabet_soup.txt"
hackercup (vec "HACKERCUP")
[n & cases] (clojure.string/split-lines (slurp input-file))
hackercup-table (frequencies hackercup)
cases-table (map frequencies cases)
cases-times (map #(times hackercup-table %) cases-tabl... 阅读全帖
t****a
发帖数: 1212
12
来自主题: JobHunting版 - 程序设计语言启发以及聚类分析图
偶不懂诶,玩了几天clojure的尾递归玩了个大概就算了,前面有人说不能把所有递归
转成尾递归,自己也没玩出来,后来就去搞memoize了,那个更实用些
clojure里iterate函数也很好用,做bfs一行就搞定了。也许其他FP语言也差不多
t****a
发帖数: 1212
13
来自主题: JobHunting版 - leetcode 129
楼主说的这题实际上是第127题
刚做了个clojure的解法,比java要短小很多。
可惜不能在leetcode上测试大数据,真心希望leetcode支持C/C++/Java以外的语言。
(defn word-map [dict]
(let [g (group-by first (for [word1 dict
word2 dict
:let [wd (word-dist word1 word2)]
:when (== wd 1)]
[word1 word2]))
ks (keys g)
vs (map (partial mapv second) (vals g))]
(zipmap ks vs)))
(defn word-dist [word1 word2]
(reduce + (map (f... 阅读全帖
p*****2
发帖数: 21240
14
来自主题: JobHunting版 - pocket gems电面第一轮面经
(defn reverseStr [str]
(clojure.string/join " " (reverse (clojure.string/split str #"\s"))))
p*****2
发帖数: 21240
15

key。
昨天发现原来clojure本身就支持memorize呀。这样的话,用clojure做dp不是太爽了,
cache都不用自己搞了。
dfs+cache dp王道呀。
O*********y
发帖数: 923
16

谢了,查了查资料,clojure类似javascript哈。过几天我自己整个clojure程序试试:
p*****2
发帖数: 21240
17
来自主题: JobHunting版 - python/ruby software engineer openning

我感觉只有Haskell这么依赖monad。Clojure根本就不需要monad。文本处理,ruby应该
有优势,不过大数据的话clojure有优势呀。
p*****2
发帖数: 21240
18

不过喜欢clojure的去groupon不算是个坏选择。因为大公司玩clojure这么猖的可能就
是groupon了。
D****3
发帖数: 611
19

哇 那想做clojure投哪个组呢?
还有会clojure和ruby 对面试groupon有帮助么(要求的python java php node.js也会
p*****2
发帖数: 21240
20
来自主题: JobHunting版 - 小问题:字符串原地压缩
(clojure.string/join
(map #(str (clojure.core/first %) (count %))
(partition-by identity (seq "aaa"))))
p*****2
发帖数: 21240
21
我的组需要一个backend engineer
我们用到的技术
1. Node.js, Coffeescript, Clojure
2. Redis, MongoDB, Cassandra
3, Hadoop, Storm
etc...
Job description 如下, 有兴趣的童鞋给我发站内信息吧。
The Display Advertising Team is part of this revolution. We are looking for
world-class engineers who will build a large-scale sophisticated advertising
platform that deals with lots of big data and various signals to make
complex decisions in real-time. Our goal is to drive a huge volume of highly
targeted traffic to Groupon and help us achie... 阅读全帖
z****e
发帖数: 54598
22
来自主题: JobHunting版 - 贡献一个groupon的电面题
二爷的组还不好认?
二爷天天挂嘴边的nodejs和clojure
其他组一般不做要求
只有他们组在用,尤其是clojure
big data组要求etl&hibernate
goods组也不要求
很容易区分
d********w
发帖数: 363
23
来自主题: JobHunting版 - 祝贺peking2升级成Staff & Tech Lead
peking2在板上贡献有目共睹,也顺利升级,在开源领地的努力没有白费啊。
看看这些最新最火技术,每个都留下脚印,让人脑动大开啊。
Node.js, Coffeescript/Javascript, Scala, Clojure, Java, Big Data, NoSQL,
Concurrency, Distributed system, Asynchronous programming, Functional
programming, Data structure and Algorithms
Functional Programming, Big Data and NoSQL technologies such as Scala, Spark
and Cassandra etc.
- Node.js, Coffeescript/Javascript, Express
- Cassandra, MongoDB, Redis
- Clojure, Storm, Kafka
- Hadoop, Hive
- C, Java, Scala, Ruby, Python, Javascrip... 阅读全帖
d********w
发帖数: 363
24
来自主题: JobHunting版 - 祝贺peking2升级成Staff & Tech Lead
peking2在板上贡献有目共睹,也顺利升级,在开源领地的努力没有白费啊。
看看这些最新最火技术,每个都留下脚印,让人脑动大开啊。
Node.js, Coffeescript/Javascript, Scala, Clojure, Java, Big Data, NoSQL,
Concurrency, Distributed system, Asynchronous programming, Functional
programming, Data structure and Algorithms
Functional Programming, Big Data and NoSQL technologies such as Scala, Spark
and Cassandra etc.
- Node.js, Coffeescript/Javascript, Express
- Cassandra, MongoDB, Redis
- Clojure, Storm, Kafka
- Hadoop, Hive
- C, Java, Scala, Ruby, Python, Javascrip... 阅读全帖
l**s
发帖数: 421
25
来自主题: JobHunting版 - Spotify很理直气壮的用Java...
“At Spotify, we use Java extensively in the backend. This is not for legacy
reasons, it's an active choice. We use Python too, but we have moved more
and more to Java. The reason is that Java is much easier to get to perform
well. Python is easy to write initially, but getting it to perform well when
being hammered by 15 million paying users is another.
I personally don't understand how a medically sane person can like the Java
syntax. However, no intelligent person can deny that the JVM is pret... 阅读全帖
n*****3
发帖数: 1584
26
DS should use scala or clojure, or even groovy. performance
is the same level as java.
Java programming is time consuming;
with clojure or scala, you can prototype, than production the core
algorithms
in one language.
p********r
发帖数: 1980
27
来自主题: StartUp版 - 吐槽一下一个最近失败的例子
So many responses! So let me respond all in a single post. (Sorry for typing
in English, it is faster).
I don't think there is anything wrong with geek. Woz was a geek.
I actually like him for two reasons. 1) He has the basic requirement I have
for my co-founder: intellectual honest. It is OK to say that "I don't know".
Startup is full of unknown (risks), if there is no risk, it is a mature
company (in fact, no company has completely no risk, otherwise, its market
value should be infinity. I can... 阅读全帖
p*****2
发帖数: 21240
28

1. Redis
随便扫了一本书
2. MongoDB
MongoDB的free training course
3. Node.js
随便扫了一本书
4. Hadoop
参加了Big data conference,有tutorial
5. Clojure
Clojure in action, 4clojure
6. Storm
参加了Big data conference,有tutorial
这些技术都不难其实。
m******t
发帖数: 635
29
来自主题: Java版 - 学了段时间scala后
Clojure有个类似的Pulsar,不过好像目前的风向更倾向于类似GO Channel的core.
async。
如果akka编译成library的话,clojure应该也可以直接利用吧
z****e
发帖数: 54598
30
来自主题: Java版 - Spring JBOSS
最新进展是正式兼容了clojure和scala
基本上以后不管做啥,我都会用这个server了
类库陡然增多啊,以后什么server side的类库
包括ror,还有nodejs那些,都可以用了
vert.x还提供了jca的module,可以很容易跟wildfly集成
server side现在光写代码堆轮子没啥乐趣了
都不难,无非看点tutorial就可以搞定了
倒是搞些统计比较有挑战性
As of version 2.1.1, Vert.x exposes its API in Java, JavaScript, Groovy,
Ruby and Python, Scala and Clojure.
N****w
发帖数: 21578
31
偶是不是落伍了。。。
比如 Clojure, Heroku, Hadoop, Cloudera, 。。。
看着都象外星人似的
http://www.infoq.com/articles/flightcaster-clojure-rails
t****a
发帖数: 1212
32
来自主题: Programming版 - 怎么这里这么多人学python
二爷和盖子两位大爷太逗了
ruby语法更灵活,geek们更喜欢这门语言的。python学习曲线平缓,更容易上手,用的
人多,各种package尤其是科学计算的package比较多
工业界就这样,做主流的往往不是最酷的语言,做主流的语言是在各种性能上包括容易
上手程度,程序员数目等等的一个折中。Java就是明证啊。
二爷,去学clojure吧——更加elegant的语言——据说Seattle的ruby社群中好多人转
了clojure。
t****a
发帖数: 1212
33
来自主题: Programming版 - Haskell很难学。。
我现在主要写Clojure,对haskell很感兴趣,特别是它的静态typing,觉得它可以在编
译阶段找出程序的错误,这点比Clojure强。
但我有些担心这种语言没办法productionize,比如,如何调用别的语言的package?如
何做大规模并行计算?如何做统计/OR的计算?也就是-是不是中看不中用的语言?我想
要的这种静态FP语言要有实际用途才好。
r*******n
发帖数: 3020
34
来自主题: Programming版 - Haskell很难学。。
我感觉clojure在big
data会有用武之地。
各种语言中,clojure算是最近好的了
E*****m
发帖数: 25615
35
来自主题: Programming版 - Haskell很难学。。

Clojure 可以直接用 Java library, Haskell 當然比不上。
本身語言特性來說, Haskell 嚴謹點, Clojure 自由點,各有長處。
r*******n
发帖数: 3020
36
来自主题: Programming版 - 王垠:解密“设计模式”
我觉得有些道理,design pattern能不用就不用,但是design pattern
很值得学习。函数编程应该是不强调design pattern,就像王银博客里说的
因为design pattern在函数编程里已经存在了。
我觉得design pattern更像是一种工程师工作交流的语言,比如你想说这个
项目怎么设计,说几个模式的名字其他人就大致明白了。
Design pattern的问题是可能过度应用,增加了逻辑层级,代码也相应臃肿,
就跟java臃肿的代码遭人诟病一样, 但是对于多人的大项目java依然是最佳选择,
因为现在我们没有更好的东西来代替。JVM语言clojure的作者也说过clojure目前
适合小团队。
t****a
发帖数: 1212
37
Clojure前辈出来了.. 现在还在用Clojure吗?做什么?
e*******o
发帖数: 4654
38
来自主题: Programming版 - functional programming?
直接从clojure doc 上拿个例子。
(((person :employer) :address) :city)
clojure 提供了个 macro ->
所以可以这样写。
(-> person :employer :address :city)
在别的语言中,大致类似的写法是 person.employer.address.city
你喜欢哪个写法? 这个例子说明什么呢?
e*******o
发帖数: 4654
39
来自主题: Programming版 - functional programming?
直接从clojure doc 上拿个例子。
(((person :employer) :address) :city)
clojure 提供了个 macro ->
所以可以这样写。
(-> person :employer :address :city)
在别的语言中,大致类似的写法是 person.employer.address.city
你喜欢哪个写法? 这个例子说明什么呢?
p*****2
发帖数: 21240
40
来自主题: Programming版 - 谈谈我认识的一些lisp程序员

currying
python有iteration不需要尾递归吧?
你说的这些好玩的地方clojure也都有吧。并且clojure的metaprogramming就可以把
scala秒了吧?
p*****2
发帖数: 21240
41
来自主题: Programming版 - scala 的感悟

IDEA
我没用Clojurescript,还是用coffeescript。
Clojure就用eclipse。还没好好研究IDE。版上的大牛不是很推崇emacs吗?说写
Clojure code超快。
p*****2
发帖数: 21240
42

发信人: peking2 (clojure), 信区: JobHunting
标 题: Re: storm俨然是下一个冉冉升起的新星啊 (转载)
发信站: BBS 未名空间站 (Thu Oct 24 19:35:13 2013, 美东)
大牛说的不错。所以说学习Storm和Clojure才是王道。
p*****2
发帖数: 21240
43

async java确实比较落后。我个人更倾向于async用node,jvm用clojure。
话说clojure的async貌似比scala差的挺多的。
p*****2
发帖数: 21240
44

发信人: peking2 (clojure), 信区: JobHunting
标 题: Re: storm俨然是下一个冉冉升起的新星啊 (转载)
发信站: BBS 未名空间站 (Thu Oct 24 19:35:13 2013, 美东)
大牛说的不错。所以说学习Storm和Clojure才是王道。
p*****2
发帖数: 21240
45

async java确实比较落后。我个人更倾向于async用node,jvm用clojure。
话说clojure的async貌似比scala差的挺多的。
m******t
发帖数: 635
46
来自主题: Programming版 - 今天跟公司confirm了,没有人用Scala
那就对了,CoffeeScript基本上算是正经的FP了 (严格来说还是个OOP+FP的混合语言,
比较优美就是了),不过也还是简版的,也没有macro,就是避免了JS的一些常见的问
题,减少了除错的时间。ClojureScript现在用的话还是有一定风险,不过也开始有比
较大的应用了,这方面新闻定制网站Prismatic算是个例子:他们的后端是Clojure,所
有Crawler, Indexer,Parser,ML都是用Clojure写的,前段的第一版是用的Node.js,被
Callback hell给恶心到,转到ClojureScript了,似乎还比较满意。
Prismatic的商业前途我倒是不太看好,估计是被人买的命,做不大。当然这和他们的
技术栈无关。
p*****2
发帖数: 21240
47
来自主题: Programming版 - 今天跟公司confirm了,没有人用Scala
更正一下。希望大家不要被误导。
现在Scala的community比Clojure要大,各种类库应该更齐全。也不能说Clojure就是比
Scala好,主要是看项目吧。
p*****2
发帖数: 21240
48
来自主题: Programming版 - 今天跟公司confirm了,没有人用Scala

我觉得应该不行。不过clojure以后可能会做。因为clojure其实是平台无关的, 可以寄
宿在多平台之上。
m******t
发帖数: 635
49
来自主题: Programming版 - 今天跟公司confirm了,没有人用Scala
已经有人用Clojure写Android应用了
https://github.com/krisc/events/blob/master/tutorial.md
也能用来写Android游戏用的是libgbx库加Clojure
g*****g
发帖数: 34805
50
web前端脚本语言竞争激烈,近一年连javascript都加入竞争。还有JVM上的Groovy,
scala, clojure。当然还有最好的语言php。以及Ruby, Perl。
在我看来php似乎没受到什么影响。Groovy, Scala, clojure都上升态。node最近似乎
一下子火了起来。Python, Ruby, Perl都受到挤压。
首页 上页 1 2 3 4 5 6 7 8 9 10 (共10页)