Skip to content

Instantly share code, notes, and snippets.

@zakky-dev
zakky-dev / extension.swift
Created November 1, 2017 06:09
型パラメータによって有効になったり無効になったりするextension
protocol InitWithIntProtocol {
init(i: Int)
}
class WithInt: InitWithIntProtocol {
required init(i: Int) {
print(i)
}
}
@zakky-dev
zakky-dev / instantiate.swift
Created November 1, 2017 05:20
こういうことができるのは嬉しいかもしれない
protocol InitWithIntProtocol {
init(i: Int)
}
class WithInt: InitWithIntProtocol {
required init(i: Int) {
print(i)
}
}
@zakky-dev
zakky-dev / test.swift
Created October 31, 2017 07:27
通らないと思ったら通った
func call2<T>(_ arg: T, _ c: (T) -> ()) {
c(arg)
}
call2(1) { arg in
print(arg)
}
@zakky-dev
zakky-dev / xmonad.hs
Created July 11, 2015 09:54
XMonadの設定
import XMonad
import XMonad.Hooks.DynamicLog
import XMonad.Hooks.EwmhDesktops
import qualified XMonad.Hooks.ManageDocks as MD
import XMonad.Util.EZConfig
import XMonad.Layout.Named
import XMonad.Layout.ToggleLayouts
@zakky-dev
zakky-dev / contract.rb
Created April 20, 2015 15:22
雑な感じの更新版。親のメソッドのことを考えるともうちょっと色々とやる必要があるはず。
module Contract
module Contracts
def push &contract
stack.push contract
end
def stack
@stack || @stack = []
end
@zakky-dev
zakky-dev / moduletest.rb
Created March 15, 2015 06:00
これができるの地味に嬉しい。
module Hoge
def func
puts "Hoge module"
end
module_function :func
end
module Fuga
def func
@zakky-dev
zakky-dev / private.xml
Last active August 29, 2015 14:17
Karabinerのemacs modeのMark Setの挙動が気持ち悪かったので
<?xml version="1.0"?>
<root>
<item>
<name>Emacs Mode Extension</name>
<item>
<name>MarkSet Mode Ext Detail</name>
<appendix>Control+W to Command_L+X</appendix>
<appendix>Option+W to Command_L+C</appendix>
<appendix>Control+G to turn off MarkSet</appendix>
<appendix>Control+Space to turn off MarkSet</appendix>
@zakky-dev
zakky-dev / translated_computation.fs
Created October 24, 2014 07:50
変換後のコンピュテーション式を覗いてみたところ、規則には出てこないはずのLetがでてきたので一応それを残しておく。
open System
open Quotations.Patterns
type Maybe<'a> = Nothing | Just of 'a
type MaybeBuilder () =
member __.Quote() = ()
member __.Run(x: Quotations.Expr<'a>) =
Console.WriteLine(x)
Just 42
@zakky-dev
zakky-dev / template_lambda.cc
Created October 17, 2014 08:27
templateにlambdaを渡したい
#include<iostream>
/*
// lambdaをtemplate parameterとして渡したい
auto template_func = [](int l, int r) { return l == r; };
typedef decltype(template_func) template_function_parameter;
template <template_function_parameter f>
bool template_function_bad()
{
@zakky-dev
zakky-dev / expression.cs
Last active August 29, 2015 14:06
try-catch-finallyの式化やってみた
using System;
using System.Collections.Generic;
namespace Expression
{
public static class Expression
{
public static ETry<TResult> Try<TResult>(Func<TResult> tryBlock)
{
return new ETry<TResult>(tryBlock);