Scala

Scala二十四点游戏(3):表达式计算(三)

jerry Scala
在上篇中我们实现了整数的四则运算的算法,这里我们回到之前提到的 5 5 5 1 的例子,我们看看eval ( ? 5 * ( 5 ? 1/5) ? )的结果是多少? scala> eval ("5*(5-1/5)") res15: Int = 25 结果为25,我们知道这

Scala二十四点游戏(4):算法之一

jerry Scala
前面我们定义了表达式的算法,通常的24点常用的算法,尽管都是穷举,也有几个常用的不同的算法,其中之一有人称为动态规划算法: 把多元运算转化为两元运算,先从四个数中取出两个数进行运算,然后把运算结果和第三

Scala二十四点游戏(5):List简介

jerry Scala
我们在前面介绍Scala编程时对Scala库提供的函数库没有介绍,Scala支持的集合类型比如List,Set,Map,Array功能非常强大,如果你之前用过C#的LINQ,基本上LINQ支持的功能Scala的集合类型都支持,很多以前需要循环来实现

Scala二十四点游戏(6):实现全排列

jerry Scala
穷举法计算二十四的算法的重要一个步骤,是把数字进行全排列,比如对于一个三个数的列表List(1,2,3),其全排列如下: List(1, 2, 3) List(1, 3, 2) List(2, 1, 3) List(2, 3, 1) List(3, 1, 2) List(3,...
阅读全文

Scala二十四点游戏(7):穷举可能的表达式

jerry Scala
详细的算法说明可以参考24点算法之我见,简单的穷举可以把+,-,×,/和()和四个数进行全排列,但这样会出现很多无效的表达式,因此我们这里参考“24点算法之我见”的算法,对表达式做些分析: “换一种思路,介绍我

Scala二十四点游戏(8): 计算24的算法

jerry Scala
有了前面的准备工作,我们现在可以给出二十四游戏的算法,首先 我们合并表示式模板和输入的四个数字,计算出结果: def calculate(template:String,numbers:List[Int])={ val values=template.split('N')

Scala二十四点游戏(9): 完整的代码和计算结果

jerry Scala
综合前面的介绍,这里我们给出最终的24点游戏的代码: import scala.collection.mutable.Stack trait BinaryOp{ val op:String def apply(expr1:String,expr2:String) = ...
阅读全文

Scala二十四点游戏(10): 更简单的表达式算法

jerry Scala
前面我们给出了计算24的算法,这并非是计算24的Scala的最短的代码,除了之前Scala二十四点游戏(4):算法之一,在Scala中我们还可以使用更简单的方法来计算表达式?从scala 2.10.0版本之后,新增了字符串插值的功能,

Scala二十四点游戏(11): 从Java中调用Scala函数

jerry Scala
我们对前面定义的计算24的代码,稍作修改,可以在Java中调用,在通常情况下在Java中调用Scala函数非常简单,反之从Scala中调用Java代码也很简单,这是因为Scala代码最终也要编译成Java class文件。以后我们将详细介

Scala课堂(1):概述

jerry Scala
我们完成了Scala开发入门教程, Scala语言和其它语言比如Java相比,算是一个比较复杂的语言,它是一个面向对象和面向函数的统一体,使用起来非常灵活,因此也不容易掌握,前面的58篇文章仅仅是Scala的一个入门教程,