Skip to content

Instantly share code, notes, and snippets.

struct User {
let username: String
}
extension User: CustomStringConvertible {
var description: String { return "username: \(username)" }
}
// DAO
@yashigani
yashigani / MyPickerView.h
Last active June 28, 2017 01:48
MyPickerView
#import <UIKit/UIKit.h>
@interface MyPickerView : UIView
<UIPickerViewDataSource, UIPickerViewDelegate>
{
UIToolbar *toolbar;
UIPickerView *picker;
void (^completion)(NSString *selected);
@yashigani
yashigani / YSNetwork.h
Created July 13, 2013 01:57
A simple CFNetwork wrapper
#import <Foundation/Foundation.h>
@interface YSNetwork : NSObject
@property (readonly) NSURL *URL;
@property (strong, nonatomic) NSURLRequest *request;
@property (strong, nonatomic) NSString *userAgent;
@property (strong, nonatomic, readonly) NSData *responseData;
@property (strong, nonatomic, readonly) NSDictionary *responseHeader;
@property (strong, nonatomic) void (^completion)(NSDictionary *responseHeader, NSData *responseData);
@property (strong, nonatomic) void (^failure)(NSError *error);
@yashigani
yashigani / bowling.hs
Last active December 26, 2015 06:29
bowling score calculater on Haskell
import System.Environment (getArgs)
import Data.Char (digitToInt)
spare = (==) '/'
strike = (==) 'X'
updateBonus r (b1, b2)
| spare r = (b2 + 1, 0)
| strike r = (b2 + 1, 1)
| otherwise = (b2, 0)
import System.Environment (getArgs)
main = do
(x:_) <- getArgs
mapM_ putStrLn $ createFizzBuzz $ read x
createFizzBuzz :: Int -> [String]
createFizzBuzz 0 = []
createFizzBuzz x = map fizzbuzz [1..x]
@yashigani
yashigani / main.md
Last active December 21, 2015 06:39
すごいH本読書会 #12

13 モナドがいっぱい

おさらい

Functor

  • 文脈を持った値に関数を適用する

    • f a(a -> b)を適用したい
  • r -> aからr -> b

    fmap :: (Functor f) => (a -> b) -> f a -> f b
@yashigani
yashigani / gist:5340466
Last active December 15, 2015 23:29
すごいH本読書会 #1 練習問題

以下の関数を定義しなさい

  • null
  • sum
  • product
  • elem
  • Pythonのスライス
    • ex) slice 2 5 [1..7] # => [3, 4, 5]
  • フィボナッチ数列のn番目の数を返す関数
  • FizzBuzzのn項目からm項目までを返す関数
@yashigani
yashigani / sudden.hs
Last active December 15, 2015 11:29
すごいH本読書会 #7 練習問題
import System.Environment (getArgs)
import Prelude hiding (head, tail)
import Data.Char (ord)
sudden :: String -> String
sudden s = unlines [head s, body s, tail s]
body :: String -> String
body s = "> 突然の" ++ s ++ " <"
@yashigani
yashigani / main.md
Last active December 15, 2015 08:38
すごいH本読書会 in 大阪 #7

すごいH本読書会 #7

8章 入出力

Hello, world

そのまえに...

入出力(I/O)の基本

  • I/Oアクションとは何か?
  • I/Oアクションはどう入出力を可能にするか?
@yashigani
yashigani / gist:5116116
Created March 8, 2013 12:22
すごいH本読書会 in 大阪 #6
data Akari a = Waai a (Akari a) | Daisuki deriving (Show)
data H oo gle = H oo oo oo oo oo gle deriving (Show)
data Ha y oo = Ha y oo oo oo oo oo deriving (Show)
data O b = OOOO|OOOOOO|O|OO deriving (Show)
data Hom r a = Hom (r -> a)
data State s a = State (s -> (a, s))
data Just a = Nothing | Maybe (Maybe a)
instance Functor Akari where
fmap _ Daisuki = Daisuki