Skip to content

Instantly share code, notes, and snippets.

@pocketberserker
pocketberserker / AsyncInCSharpAndFSharp.ja.rst
Last active October 6, 2022 02:53
Async in C# and F#: Asynchronous gotchas in C# (Japanese translation)

C# と F# の Async: C# の非同期の落とし穴

原文:Async in C# and F#: Asynchronous gotchas in C#
原文著者:Tomas Petricek (@tomaspetricek)
翻訳者:@pocketberserker

2月に、私は毎年恒例のMVPサミット ── Microsoft が MVP のために主催するイベント ── に出席しました。私はボストンとニューヨークを訪問する機会を利用して、二つの F# に関する講演と Channel9 lecture about type providers の収録を行いました。他のすべての活動(しばしばパブで他の F#er を議論に巻き込んだり、朝まで長い睡眠)にもかかわらず、私はいくつかの講演に参加し果せました。

@tonymorris
tonymorris / Co.scala
Last active December 17, 2015 07:28
The `scala.List` and `scala.Option` data types would benefit from the addition of `coflatMap` and `coflatten` methods.
case class OptionAdd[+A](o: Option[A]) {
// Can be defined in terms of coflatten.
def coflatMap[B](f: Option[A] => B): Option[B] =
// o map (_ => f(o))
o match {
case None => None
case Some(_) => Some(f(o))
}
def coflatten: Option[Option[A]] =
package bits
import scala.language.experimental.macros
import scala.reflect.macros.Context
object Macros {
def bits(n: Long) = macro impl
def impl(c: Context)(n: c.Expr[Long]): c.Tree = {
@xuwei-k
xuwei-k / endo.md
Created May 19, 2013 14:13
Scalaz Endo
@xuwei-k
xuwei-k / Main.scala
Last active December 17, 2015 12:39
Monad without map, flatMap, yield
sealed trait Maybe[+A]
case class Just[+A](a: A) extends Maybe[A]
case object Not extends Maybe[Nothing]
sealed trait ConsList[+A]{
final def ::[AA >: A](h: AA): ConsList[AA] = Cons(h, this)
final def :::[AA >: A](h: ConsList[AA]): ConsList[AA] = {
def loop(other: ConsList[AA]): ConsList[AA] = other match{
case Cons(head, tail) => head :: loop(tail)
case NIL => this
@gakuzzzz
gakuzzzz / 1.md
Created May 21, 2013 09:14
ScalikeJDBC つれづれ
  def cond[A](value: A)(f: PartialFunction[A, SQLBuilder => SQLBuilder]): SQLBuilder

こんな感じの(実際にはSQLBuilderはサブクラス型にしないとだけど)あれば下みたいに書けるかなー

  val id: Option[Int] = ...
  val name: Option[String] = ...
package scalaz
/** [[scala.Either]], but with a value by name. */
sealed trait LazyEither[+A, +B] {
import LazyEither._
def fold[X](left: (=> A) => X, right: (=> B) => X): X =
this match {
case LazyLeft(a) => left(a())
@gakuzzzz
gakuzzzz / gist:5632577
Last active December 17, 2015 15:29
色んなSQLをScalikeJDBCで書くと?
// b88 にて、直接コマンドラインから javac と java を呼び出して動作を確認
import java.util.Optional;
import java.util.function.Function;
final class OptionalUtil{
public static <A, B> Optional<B> bind(Optional<A> o, Function<A, Optional<B>> f){
return o.isPresent() ? f.apply(o.get()) : Optional.empty();
}
}