`
jilen
  • 浏览: 98323 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
文章列表
也许还不够优雅。   trait Tree[+T] { /** * 深度优先遍历 */ def dfs(func: T => Unit) { this match { case Empty => case Node(value, left, right) => func(value); left.dfs(func); right.dfs(func) } } } /** * 空树 */ case object ...
Stream 和 List 一样,是一种递归的数据结构   从大学到工作一直是java,c++,c,c#这些都不是函数式的编程语言,并且递归已经被判了死刑(通常因为系统方法调用栈太小,且JVM不会做尾递归优化)。所以,Stream这样递归的数据结构,理解起来不是那么自然。   看个简单例子           lazy val fib: Stream[BigInt] = Stream.cons(1, Stream.cons(1, (fib zip fib.tail).map(p => p._1 + p._2)))   非波那且数列,,,好吧,这个例子一点也不简单,对于我来说。 ...

别随便评论

    博客分类:
  • misc
1. 碰到xxx和xxx谁更好之类的话题,无视之。 2. 碰到说xxx太垃圾了之类的人,无视之。   别较劲,没什么意思,自己的想法自己印证吧,志不同道不合的思想怎么也不会走到一起。
  网络程序(或在其他异步的程序)由于是异步返回结果的,通常需要阻塞线程直到结果返回,这个时候,下面的代码就有用了。           package org.jilen.cookie.concurrent; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; /** * This is a simple <strong>future</str ...
   Akka的源代码采用sbt 0.7.7做管理。最新的sbt 0.10.x已经发生了许多变更,为了使用sbteclipse生成Eclipse项目方便查看源代码,今天捣腾了不少时间。     0. 下载akka源代码,解压至硬盘(也可以git clone之)   1. 备份原有的akka源代码目录下面的project文件夹为project.old。   2. 创建新的project文件夹   3. project目录下创建项目配置文件Build.scala和build.properties   4. 运行sbt reload,update,compile编译项目   5. sbt ...
最近看了下背包问题的算法。顺便用scala写了下简单的实现   问题概述:现有一个只能承受limit重量的背包,放入一些物品,物品的重量和价值在List[(Int,Int)]中,如何是背包中物品最大价值     def bag(item: List[(Int, Int)], limit: Int): Int = item match { case (weight, value) :: tail if (limit > 0 && limit >= weight) => math.max(bag(tail, limit), val ...
the double-check locking broken  主要解释下内存模型相关的这篇文章 http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html     // Broken multithreaded version // "Double-Checked Locking" idiom class Foo { private Helper helper = null; public Helper getHelper() { if (helper = ...
  可见性是Java虚拟机上定义的逻辑上的偏序关系。通常指某些操作的结果对后续的其他操作必须是可见的。详细内容参见《Java Concurrency In Practice》,这部分内容通常被称为Java Memory Model,与操作系统Memory Model概念类似。主要通 ...
简单的基于文本的spring视图和加载器。说白了就是直接打印到response 先在配置文件中加上<bean class="org.jilen.spring.mvc.view.resolver.PrefixViewResolver"></bean> 可以和InternalResourceViewResolver等一起使用 @Controller public class SomeController{ @RequestMapping("script/{script}") public String script(@Pat ...
Global site tag (gtag.js) - Google Analytics