java 专用名词. GoF 模式算啥, wiki 模式大全里有几百种呢... 硬要把模式套到动态语言/函数式的话:
动态语言的成员查找是 service locator 模式, 等价于依赖注入 -- 我们都知道用了 DI 以后很多模式都可以不用了.
动态语言的执行主要是解释模式
动态语言的方法调用是命令模式
对象层级是原型模式
动态语言没有静态成员, "类方法", "类属性" 全是单例模式的应用
function/lambda/block 是 visitor 模式
...
或者说 java 程序员需要艰苦修炼才能用出来的设计模式, 在其他语言里就像呼吸空气一样平常, 使用者甚至不需要意识到自己是在应用"模式".
@
felix021 反了, 应该说很多语言有状态的问题, haskell 就没有状态的问题. haskell 的 monad do-notation 语法糖里看似状态的东西其实都不是真的状态, 不会出现并发修改同步或者死锁等等状态导致的问题, 因此特别适合处理带复杂状态的程序.