刚看到一段 scala程序:Merry Xmas

huntor 2011-12-23 07:50:07

import annotation.tailrec

abstract class Tree(val left: Tree) {
def o = new Ball(this)
def x = new Spike(this)
def * = new Candle(this)
def oxo = new BigBall(this)
def oo = new DoubleBall(this)
def *** = new ElectricCandle(this)

def / = new LeftNeedle(this)
def \ = new RightNeedle(this)
def | = new Trunk(this)

}
class Top(star: Star) extends Tree(star)
abstract class Needle(left: Tree) extends Tree(left)
class LeftNeedle(left: Tree) extends Needle(left)
class RightNeedle(left: Tree) extends Needle(left) {

def |||() {
|||(true)
}

@tailrec
final def |||(sparkle: Boolean) {
val f = (t: Tree) =>
t match {
case _: LeftNeedle => "/"
case _: RightNeedle => "\\"
case _: Trunk => "|"
case _: Ball => "o"
case _: Spike => "x"
case _: Candle => "*"
case _: BigBall => "oxo"
case _: DoubleBall => "oo"
case _: ElectricCandle => "***"
}

def walk(t: Tree, depth: Int): List[String] = {
def walkLevel(t: Tree, acc: String,
f: (Tree) => String): (Tree, String) = {
val fx = (t: Tree) => if (sparkle) f(t).toUpperCase else f(t)
t match {
case l: LeftNeedle => (l.left, fx(l) + "." + acc)
case t: Tree => walkLevel(t.left, fx(t) + "." + acc, f)
}
}

t match {
case r: RightNeedle =>
val l = walkLevel(r, "", f)
l._2 +: walk(l._1, depth + 1)
case s: Star =>
List("-->*<-- ", "\\-/.")
}
}

val tree = "||| " +: walk(this, 0)

tree.reverse.foreach({l =>
val numSpaces = 30 - (l.length() / 2)
val padding = " " * numSpaces
print(padding)
println(l)
})

Thread.sleep(500)

|||(!sparkle)
}

}
class Trunk(parent: Tree) extends Tree(parent)

abstract class Decoration(left: Tree) extends Tree(left)
class Star extends Decoration(null)
class Candle(left: Tree) extends Decoration(left)
class Ball(left: Tree) extends Decoration(left)
class Spike(left: Tree) extends Decoration(left)
class BigBall(left: Tree) extends Decoration(left)
class DoubleBall(left: Tree) extends Decoration(left)
class ElectricCandle(left: Tree) extends Decoration(left)

trait DecorationBuilder {
def \-/ = new PartialDecoration
}
class PartialDecoration {
def -->*<-- = new Star
}

object ChristmasTree extends DecorationBuilder {

def main(args: Array[String]) {
\-/.
-->*<--
.
/.\
./.|.\.
/.oxo.\
./.*.|.x.\.
/.oo.|.oo.\
./.oxo.|.***.\.
/.*.oo.|.*.oo.\.
|||
}

}
...全文
278 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
aotian16 2011-12-23
  • 打赏
  • 举报
回复
看不懂路过, JF
yuweng101 2011-12-23
  • 打赏
  • 举报
回复
路过!!!
  • 打赏
  • 举报
回复
不错哦
我嘞个去 2011-12-23
  • 打赏
  • 举报
回复
牛B!膜拜!
BUG胡汉三 2011-12-23
  • 打赏
  • 举报
回复
xxooxxoo~~~!!!
kouyiSC 2011-12-23
  • 打赏
  • 举报
回复
长见识了。。。不是我没见识。。。。不过还真么见过这代码。。。顺势接分。。。
banhui52179 2011-12-23
  • 打赏
  • 举报
回复
圣诞快乐!
Acesidonu 2011-12-23
  • 打赏
  • 举报
回复
进来接分来了
oO临时工Oo 2011-12-23
  • 打赏
  • 举报
回复
好,接分,剩蛋快乐
龙四 2011-12-23
  • 打赏
  • 举报
回复
尽是xxoo
huntor 2011-12-23
  • 打赏
  • 举报
回复
内容概要:本文研究油浸式变压器在不同气候条件下的能量极限问题,通过Matlab代码实现建模与仿真,深入分析环境温度、湿度等气候因素对变压器热稳定性、负载能力及运行安全性的影响,进而确定其在多种工况下的最大能量承载极限。研究采用多智能体方法提升模型的适应性与仿真精度,综合考虑热平衡方程与环境参数输入,旨在为变压器的设计优化、容量规划、动态负载管理及智能电网中的可靠性分析提供科学依据和技术支撑。; 适合人群:具备电力系统基础知识和Matlab编程能力,从事电气工程、能源系统仿真、电力设备设计等相关领域的科研人员与工程师,特别适合研究生及工作1-5年的专业技术人才; 使用场景及目标:①评估油浸式变压器在极端气候环境下的安全运行边界;②优化变压器的负载调度与能效管理策略;③支持智能电网背景下设备级动态容量规划与韧性电网建设;④为高可靠性供电系统的设计与运维提供理论参考; 阅读建议:学习者应结合提供的Matlab代码深入理解建模流程,重点掌握热传导模型构建、环境变量设定、多智能体协同机制及仿真参数调优方法,并通过调整气候条件进行多场景仿真实验,以深化对变压器能量极限形成机理的认知。

23,405

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧