- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Martin Odersky 在 2011 年 Scala Days 上发表了主题演讲。在演讲中,他针对 Lutz Prechelt 在 IEEE Computer 33 上的“七种编程语言的实证比较”文章中使用的著名电话号码短语编码器问题提出了一个令人印象深刻的解决方案。我试图获取代码来自PDF,但结果充满了难以摆脱的不间断空格。
此外,给出的解决方案中有一些奇怪的东西,比如在可以推断出它们时明确提到的类型,以及一个具有 List[String] 值的 Map 的默认值被赋予 0。它只是一个类;它是不可执行的。
有没有人有该示例代码的现成、清理版本?
主题演讲视频和幻灯片可在此处获得:
http://days2011.scala-lang.org/node/138/270
最佳答案
这是 Coder 类的清理版本,以及像这样执行的 CoderTest 类,第一个参数是要编码的电话号码,其余的是字典中的单词:
$ scala CoderTest 7225276257 let us see if scala rocks is in the output
Set(scala rocks)
object CoderTest extends App {
val digits::words = args.toList
println( new Coder(words) translate digits )
}
class Coder( words: List[String] ) {
// In this code "num" means a string of digits, e.g. "834921".
val digitToLetters = Map(
'2' -> "ABC", '3' -> "DEF" , '4' -> "GHI", '5' -> "JKL",
'6' -> "MNO", '7' -> "PQRS", '8' -> "TUV", '9' -> "WXYZ"
)
// Invert digitToLetters to give a map from chars 'A'..'Z' to '2'..'9'.
val letterToDigit =
for ( (digit,itsLetters) <- digitToLetters; letter <- itsLetters )
yield ( letter -> digit )
// Maps a word to the digit string it can represent.
def wordToNum( word: String ) = word.toUpperCase map letterToDigit
// Map from digit string to words in our dictionary that represent it.
// e.g. 5282 -> List( Java, Kata, Lava, ... )
val numToWords = ( words groupBy wordToNum ) withDefaultValue List()
// Maps a digit string to all phrases (lists of dictionary words)
// that represent it.
def numToPhrases( num: String ): Set[ List[String] ] =
if ( num.isEmpty )
Set( List() )
else (
for { splitPoint <- 1 to num.length
word <- numToWords ( num take splitPoint )
phrase <- numToPhrases( num drop splitPoint )
} yield word::phrase
).toSet
// Maps a number to the set of all word phrases that can represent it.
def translate( num: String ) = numToPhrases(num) map ( _ mkString " " )
}
关于scala - 有人可以分享 Odersky 在 2011 年 Scala 日的主题演讲中的 Coder 类的干净版本吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8629058/
语音 api 在 WinRT(如 Windows Phone 8)中是否可用。 我可以改用一些第三方语音 api 吗? 我想在我的 Windows 8/WinRT 应用程序中实现 TTS,有人有什么建
我希望将 Ted 演讲嵌入我的网站,但想要居中。 iframe 位于多个 div 中,因此我在隔离和编码必要参数时遇到了一些麻烦。 当前代码: 最佳答案 为第一个 div 尝试样式 margin:
据我了解,TED 可能不会考虑制作黑莓应用程序。我已经创建了一些框架来解析各种类型的 API/提要/服务,并且想知道是否有一种方法可以让第三方开发人员制作 TED 应用程序。我曾通过 Google 听
这个问题与this other question @ SuperUser有关. 我要下载 TED Talks以及离线观看的相应字幕,例如让我们看this short talk by Richard S
我是一名优秀的程序员,十分优秀!