小编jaz*_*090的帖子

学习Haskell以学习Scala

我读了几个问题,比如Scala和Haskell讨论两种语言的优点或者要学习哪些,但我已经知道我想学习Scala.我是uni的Java程序员,现在主要使用PHP.

我想学习Scala,因为它看起来像个人项目的Java改进,我也想学习一种函数式语言来提高我作为程序员的知识.

我想知道将Haskell作为函数式编程的介绍是否是一个好主意,因为它纯粹是函数式的,所以我应该正确地学习它而不是偶然使用Scala中的一些函数而不知道为什么?

我也喜欢将Haskell用于个人项目等,因为它看起来很棒,但我并没有真正看到它的许多真实应用,似乎更多地用于学术事物,因此想要学习它以获得功能性理解然后继续斯卡拉

haskell functional-programming scala purely-functional

42
推荐指数
4
解决办法
3771
查看次数

得到"错误:类型不匹配;找到:需要单位:()=>单位"在回调上

我刚刚开始阅读有关scala的教程并且遇到了阻塞.我已经将几个示例合并在一起并且收到错误,但不知道为什么.

import java.text.DateFormat._
import java.util.{Date, Locale}

object FrenchDate {
  def main(args: Array[String]) {
    timer(println(frenchDate))
  }

  def frenchDate():String = {
    val now = new Date
    val df = getDateInstance(LONG, Locale.FRANCE)
    df format now
  }

  def timer(callback: () => Unit) {
    while(true) {callback(); Thread sleep 1000}
  }
}
Run Code Online (Sandbox Code Playgroud)

带来错误

error: type mismatch;
found   : Unit
required: () => Unit
println(frenchDate)
Run Code Online (Sandbox Code Playgroud)

而以下工作

import java.text.DateFormat._
import java.util.{Date, Locale}

object FrenchDate {
  def main(args: Array[String]) {
    timer(frenchDate)
  }

  def frenchDate() {
    val now = new …
Run Code Online (Sandbox Code Playgroud)

types scala callback

3
推荐指数
1
解决办法
4205
查看次数

gsub在整个代码段中无法正常工作

使用此代码示例

#!/usr/bin/ruby
paragraph = "champion xylophone excellent"
paragraph = paragraph.gsub("ch","tj")
words = paragraph.split(/ /)
words.each do |word|
   if word[0,1] == "x"
     word[0.1] = "z" 
   end
end
paragraph = words.join(" ")
paragraph.gsub("x","ks")
print paragraph
Run Code Online (Sandbox Code Playgroud)

输出将是'tjampion zylophone excellent'而不是'tjampion zylophone ekscellent'

如果将gsub应用于各个单词中,则同样适用.我不明白为什么它在开始时起作用而不是在最后起作用.

编辑

第二种情况与第一种情况截然不同:

#!/usr/bin/ruby
paragraph = "champion xylophone excellent"
paragraph = paragraph.gsub("ch","tj")
words = paragraph.split(/ /)
words.each do |word|
   if word[0,1] == "x"
     word[0.1] = "z" 
   end
   word = word.gsub("x","ks")
end
paragraph = words.join(" ")
print paragraph
Run Code Online (Sandbox Code Playgroud)

ruby gsub

3
推荐指数
1
解决办法
2461
查看次数