Skip to content

Instantly share code, notes, and snippets.

// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/kpdus/jad.html
// Decompiler options: packimports(3)
// Source File Name: test.scala
package dynamic;
// Referenced classes of package dynamic:
// Sample
package com.github.tarao
package gradual
import scala.language.dynamics
import scala.language.experimental.macros
import scala.reflect.runtime.{universe => ru}
import ru.{Type, TypeTag, TermName, MethodSymbol, typeOf}
class Dyn(value: Any, t: Type) extends Dynamic {
def as[T: TypeTag](): T = {

ポイント

  • runするまではクエリは走らない
    • m*ms*ができた段階ではまだクエリは走ってない
  • 長いモナド型は途中の操作の種類を記憶している
    • N個のモナドに対する操作は同じ種類の操作でないといけない (というのを型が保証している)
    • 同じ種類の操作なので各ステップはまとめてやれる
  • Seq[モナド型]に対するrunは各ステップをまとめて実行
    • FlatMapped[]の場合はこのへん
      • ひとつ前までのモナドのリストをまとめてrun
@tarao
tarao / hatena_diary_fs.rb
Created November 2, 2009 18:25 — forked from hotchpotch/hatena_diary_fs.rb
HatenaDiaryFS
#! /usr/bin/env ruby
require 'rubygems'
require 'pit'
require 'fusefs'
require 'atomutil'
require 'time'
module REXML
class Text
def clone
// ==UserScript==
// @name run scala
// @namespace http://orezdnu.org/
// @include http://*.g.hatena.ne.jp/*
// ==/UserScript==
(function(lang, url) {
var list = document.getElementsByTagName('pre');
for (var i=0; i < list.length; i++) {
var pre = list[i];
// ==UserScript==
// @name h2.hatena.ne.jp
// @namespace http://orezdnu.org/
// @include http://h2.hatena.ne.jp/*
// ==/UserScript==
(function() {
var stretch = {
q: true,
};
def main
maze, start, goal = read(ARGF)
path = start.dijkstra
write(maze, path, goal)
end
def read(input)
start = nil
goal = nil
prev = []
// ==UserScript==
// @name mixiAutoOpenFriendProfile
// @namespace http://orezdnu.org/
// @include http://mixi.jp/*
// ==/UserScript==
(function() {
var link = document.getElementById('JS_show_more_profile');
if (link) {
var evt = document.createEvent('MouseEvents');
// ==UserScript==
// @name preventLargeFlash
// @namespace http://orezdnu.org/
// @include http://*
// ==/UserScript==
(function(d) {
var tags = [ 'object', 'embed' ];
var t = 0.95; // threshold
var wait = 300;
@tarao
tarao / primes.java
Created April 15, 2010 16:08
Enumerating prime numbers in Featherweight Java
////////////////////////////////////////////////
// Lazy evaluation
class Obj extends Object {
Obj(){ super(); } Obj eval(){ return this; }
}
////////////////////////////////////////////////
// Error indicator