我可能遗漏了一些东西,但为什么这两个数值等于-1?
System.out.println(Character.getNumericValue(Character.MAX_VALUE));
System.out.println(Character.getNumericValue(Character.MIN_VALUE));
Run Code Online (Sandbox Code Playgroud)
返回:
-1
-1
Run Code Online (Sandbox Code Playgroud) georgii@gleontiev:~$ scala
Welcome to Scala version 2.8.1.final (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_24).
Type in expressions to have them evaluated.
Type :help for more information.
scala> val jbool = java.lang.Boolean.TRUE
jbool: java.lang.Boolean = true
scala> val sbool = true
sbool: Boolean = true
scala> def sboolMethod(sbool: Boolean) = print("got scala.Boolean " + sbool)
sboolMethod: (sbool: Boolean)Unit
scala> sboolMethod(sbool)
got scala.Boolean true
scala> sboolMethod(jbool)
<console>:9: error: type mismatch;
found : java.lang.Boolean
required: scala.Boolean
sboolMethod(jbool)
^
scala> implicit def jbool2sbool(bool: java.lang.Boolean): …Run Code Online (Sandbox Code Playgroud) 我试图将一个haskell示例(我之前遇到过)转换为scalaz.最初的例子如下:
("Answer to the ", (*)) <*> ("Ultimate Question of ", 6) <*> ("Life, the Universe, and Everything", 7)
Run Code Online (Sandbox Code Playgroud)
据我所知,使用此实例.
它没有按字面意思转换为scalaz:
scala> ("Answer to the ", ((_: Int) * (_: Int)) curried) |@| ("Ultimate Question of ", 6) |@| ("Life, the Universe, and Everything", 7) tupled
res37: (java.lang.String, (Int => (Int => Int), Int, Int)) = (Answer to the Ultimate Question of Life, the Universe, and Everything,(<function1>,6,7))
Run Code Online (Sandbox Code Playgroud)
虽然,我已经找了一个实例,它似乎在那里(再次,据我所知).
所以,问题是:为什么它不能像这样工作?或者我错过了什么/没有得到正确的答案?
你如何保持自己的标准编码?有了StyleCop和ReSharper的为C#.Java中的代码分析是否有任何工具/ eclipse插件?你用哪个?
我正在尝试traverse_在下面的代码中改进函数的类型推断:
import scala.language.higherKinds
trait Applicative[AF[_]] {
def ap[A, B](a: AF[A])(f: AF[A => B]): AF[B]
def pure[A](a: A): AF[A]
def fmap[A, B](a: AF[A])(f: A => B): AF[B]
}
def traverse_[AP[_]: Applicative, A](xs: Iterable[A])(f: A => AP[Unit]): AP[Unit] = {
val ap = implicitly[Applicative[AP]]
(xs :\ ap.pure(())) { (x, acc) =>
val apFunc = ap.fmap(f(x))(a => identity[Unit] _)
ap.ap(acc)(apFunc)
}
}
implicit def optionAp = new Applicative[Option] {
def ap[A, B](a: Option[A])(f: Option[A => B]): Option[B] = f flatMap (a …Run Code Online (Sandbox Code Playgroud) 每种技术都具有强大的功能,包括为其编写的库和框架.我理解,Scala能够使用为Java编写的库和框架.但是已经有一些在Scala中为Scala编写的框架.比如,例如:
你知道Scala用Scala写的更好的库和框架吗?
java中是否有任何集合类,它实现push_back()和push_front()方法?
我基本上有两个问题:
eclipse:eclipse,它开始构建eclipse项目)我试图添加:kind对scala repl的命令支持.感谢Eugene Burmako,我得到了一个工作原型.虽然它只适用于完全限定名称,但无法解析导入的名称.
我现在正试图用它IMain.exprTyper来完成这项工作,因为它知道导入到repl中的类型.但有一个问题.我尝试的所有东西都返回ClassInfoType如下(显示showRaw):
ClassInfoType(List(TypeRef(TypeRef(TypeRef(TypeRef(NoPrefix(), package <root>, List()), package java, List()), package lang, List()), class Object, List()), TypeRef(TypeRef(TypeRef(NoPrefix(), package <root>, List()), package scala, List()), trait Serializable, List())), Scope{
def <init>(): Option.type;
implicit def option2Iterable(xo: Option): Iterable;
def apply(x: Object): Option;
def empty(): Option;
private def readResolve(): Object
}, object Option)
Run Code Online (Sandbox Code Playgroud)
工作实施具体回报Type:
PolyType(List(TypeName("A")), ClassInfoType(List(TypeRef(ThisType(scala), TypeName("AnyRef"), List()), TypeRef(ThisType(scala), scala.Product, List()), TypeRef(ThisType(scala), scala.Serializable, List())), Scope(nme.CONSTRUCTOR, TermName("isEmpty"), TermName("isDefined"), TermName("get"), …Run Code Online (Sandbox Code Playgroud) 我正试图在我的电梯项目中开始使用scalaz.为此,我正在重写一些代码来满足风格.考虑用于登录用户的代码:
def login: CssSel = {
var password = ""
def submit() {
if (doLogin) S.redirectTo("/index")
else S.error("Wrong password")
}
"name=pwd" #> SHtml.password(password, password = _) &
"type=submit" #> SHtml.onSubmitUnit(submit)
}
Run Code Online (Sandbox Code Playgroud)
因此,应该以某种方式使用状态monad重写.但我只是不明白,怎么样.试试这个:
val result = for {
s <- init[String]
pass <- SHtml.password(s, put(_))
newPass <- init[String]
res <- "name=pwd" #> pass &
"type=submit" #> SHtml.onSubmit { _ =>
if (User.logIn("username", newPass)) S.redirectTo("/index")
else S.error("Wrong password")
}
} yield (newPass, res)
result ! ""
Run Code Online (Sandbox Code Playgroud)
UPD:根据答案更新了示例.
状态单子在scalaz任何好的教程/解释,说明如何使用gets,put …
scala ×6
java ×4
scalaz ×3
applicative ×1
boolean ×1
c# ×1
char ×1
character ×1
coding-style ×1
collections ×1
console ×1
eclipse ×1
frameworks ×1
lift ×1
maven-2 ×1
monoids ×1
plugins ×1
push-back ×1
reflection ×1
scala-2.10 ×1
state-monad ×1
vector ×1