T => T
という型の関数 f, g, h
があるとき
(f, g)
を受け取って x => f(g(x))
となる関数を返す関数 Aと
(f, g, h)
を受け取って x => f(g(h(x)))
となる関数を返す関数 Bを考える
[1] AとBを実装せよ
[2] AとBを一般化して、
任意の数の T => T
型の関数のリスト [f, g, h, ... ]
を受け取って
#! /bin/env ruby | |
class Option | |
end | |
class Some < Option | |
include Enumerable | |
def initialize(a) | |
@a = a |
package models | |
import scalikejdbc._ | |
import skinny.orm.{SkinnyCRUDMapper, SkinnyRecord} | |
case class Example( id: Long, name: Option[String] = None ) extends SkinnyRecord[Example] { | |
def skinnyCRUDMapper = Example | |
} | |
object Example extends SkinnyCRUDMapper[Example] { |
object Example { | |
import scala.xml._ | |
import scala.util.control.Exception._ | |
def str(node: Node, key: String): Option[String] = (node \\ key).headOption.map(_.text) | |
def int(node: Node, key: String): Option[Int] = allCatch opt { str(node, key).map(_.toInt).get } | |
case class Person(name: String, age: Int) |
import play.api.libs.functional.Applicative | |
type ESTR[A] = Either[String,A] | |
implicit def applicativeEither: Applicative[ESTR] = new Applicative[ESTR] { | |
override def apply[A, B](mf: ESTR[A => B], ma: ESTR[A]): ESTR[B] = mf.right.flatMap(f => ma.right.map(f)) | |
override def pure[A](a: A): ESTR[A] = Right(a) |
kkismd 6月 30 11:08 | |
フォーマットの決まったXMLをパースしてcase classに格納したいとき、 | |
標準のscala.xmlだけで下記のようにやってみてるのですが、 | |
https://gist.github.com/kkismd/87e073fadfa63423308a | |
このへんを省力化してくれるライブラリはありますか? | |
JSON -> case classはいろいろ見つかるんですがXMLは探しかたが悪いのか見つかりませんでした。 | |
mather 6月 30 12:08 | |
scalaxbでしょうか。 |
import scala.Function2; | |
import scala.Predef.; | |
import scala.Serializable; | |
import scala.runtime.AbstractFunction2; | |
import scala.runtime.BoxesRunTime; | |
public final class Main$ | |
{ | |
public static final MODULE$; |
% schema2rst -c schema2rst.yml -o schema.rst | |
Traceback (most recent call last): | |
File "~/.python/2.7.5/site-packages//schema2rst", line 8, in <module> | |
load_entry_point('schema2rst==0.9.0', 'console_scripts', 'schema2rst')() | |
File "~/src/Sphinx/schema2rst-0.9.0-py2.7.egg/schema2rst/commands/rst.py", line 51, in main | |
engine.dispose() | |
NameError: global name 'engine' is not defined |
val dict = Map( | |
"AAA" -> "BBB", | |
"BBB" -> "CCC", | |
"CCC" -> "DDD" | |
) | |
// Optionで返す場合 | |
for { | |
bbb <- dict.get("AAA") | |
ccc <- dict.get(bbb) | |
ddd <- dict.get(ccc) |
scala> import org.mindrot.jbcrypt.BCrypt | |
import org.mindrot.jbcrypt.BCrypt | |
scala> val pw = "my password" | |
pw: String = my password | |
scala> val salt = BCrypt.gensalt() | |
salt: String = $2a$10$AsMc1b5AYVudBaXWXTYpe. | |
scala> val encryptedPassword = BCrypt.hashpw(pw, salt) |
T => T
という型の関数 f, g, h
があるとき
(f, g)
を受け取って x => f(g(x))
となる関数を返す関数 Aと
(f, g, h)
を受け取って x => f(g(h(x)))
となる関数を返す関数 Bを考える
[1] AとBを実装せよ
[2] AとBを一般化して、
任意の数の T => T
型の関数のリスト [f, g, h, ... ]
を受け取って