また、Javaでは==や!=で比較できるのは基本型に限られ、オブジェクトの比較は原則としてequalsメソッドを使いました。Scalaでもこれはほぼ同じですが、テキスト(String)も==や!=で比較することができます。
String
だけ特別な扱いのような誤解をあたえる?
(:typelogic.core/var unquote _0) | |
(:typelogic.core/var unquote-splicing _0) | |
(:typelogic.core/var *print-length* nil) | |
(:typelogic.core/var list clojure.lang.IFn) | |
((:typelogic.core/var method-sig (:typelogic.core/fn ((_0) _1))) | |
:- | |
(_0 <:< java.lang.reflect.Method) | |
(clojure.lang.PersistentVector <:< _1)) | |
((:typelogic.core/var cons (:typelogic.core/fn ((_0 _1) _2))) | |
:- |
#!/bin/bash | |
## install fontforge | |
brew install fontforge | |
##mkdir work | |
mkdir ~/.Trash/ricty | |
cd ~/.Trash/ricty | |
## get fontfiles |
import scalaz._, Scalaz._ | |
object Main extends App{ | |
type ErrorMessage = String | |
def parseName(input: String): ValidationNel[ErrorMessage, String] = { | |
val trimmed = input.trim | |
if (!trimmed.isEmpty) Success(trimmed) else s""""${input}" is not a valid name""".failNel | |
} |
import scalaz.stream.Process | |
import java.nio.{ByteBuffer,CharBuffer} | |
import java.nio.charset.Charset | |
object Decoder { | |
type Bytes = Array[Byte] | |
def decode(charset: Charset, leftovers: Bytes = Array()): Process.Process1[Bytes, Char] = | |
Process.receive1({ data => |
import shapeless._ | |
sealed trait List[+T] | |
case class Cons[T](hd: T, tl: List[T]) extends List[T] | |
sealed trait Nil extends List[Nothing] | |
case object Nil extends Nil | |
trait Show[T] { | |
def apply(t: T): String | |
} |
import sbt._ | |
import Keys._ | |
import java.net._ | |
import java.io.File | |
import play.PlayRunHook | |
/* | |
Grunt runner should be in project directory to be picked up by sbt | |
*/ | |
object Grunt { |
package play.api.mvc | |
import play.api.libs.iteratee._ | |
import play.api._ | |
import scala.concurrent._ | |
import scala.language.higherKinds | |
import scalaz.Id._ | |
trait ActionBuilder[R[_], I[_]] { |
scalaVersion := "2.10.2" |