This gist is part of a blog post. Check it out at:
http://jasonrudolph.com/blog/2011/08/09/programming-achievements-how-to-level-up-as-a-developer
// | |
// ViewController.m | |
// LayerFun | |
// | |
// Created by Veronica on 9/16/12. | |
// Copyright (c) 2012 Veronica Ray. All rights reserved. | |
// | |
#import "ViewController.h" | |
#import <QuartzCore/QuartzCore.h> |
This gist is part of a blog post. Check it out at:
http://jasonrudolph.com/blog/2011/08/09/programming-achievements-how-to-level-up-as-a-developer
num_test_cases = gets.chomp.to_i | |
each_num_of_cycles = [] | |
height_after_n_cycles = {} | |
i = 0 | |
while i < num_test_cases | |
each_num_of_cycles.push(gets.chomp.to_i) | |
i += 1 | |
end |
puts "Hello World" |
public boolean groupNoAdj(int start, int[] nums, int target) { | |
if(start >= nums.length) return (target == 0); | |
if(start + 2 < nums.length) { | |
if(groupNoAdj(start + 2, nums , target - nums[start]) == true) return true; | |
} | |
if(groupNoAdj(start + 1, nums, target) == true) return true; | |
return false; | |
} |
var latestSession : SessionInfo = validSessions.reduce(validSessions[0], combine: {$0.timestamp > $1.timestamp ? $0 : $1}) |
var viewController = ProfileViewController(musicServicer: MockMusicService()) | |
// invoke | |
viewController.viewDidLoad() | |
// verify | |
XCTAssertTrue(mockMusicService.playCalled) | |
} |
First step is to desugar do notation. In this case we want to translate it to the bind (>>=) operator: | |
greeter = | |
name >>= ask | |
return ("hello, " ++ name ++ "!") | |
Now that it's desugared (not convinced I've done it correctly) I will translate it to Swift. | |
I'm relying on the Reader monad implementation in Swiftz (https://github.com/typelift/Swiftz/blob/968075391aedb15ec51ff9d5b7d4921b8fa3a3c6/Swiftz/Reader.swift) | |
Current code is: |
//: Playground - noun: a place where people can play | |
import Cocoa | |
import Foundation | |
// WinterBuddies a social network to connect you with people who can help you survive the winter | |
class ProfileViewController : UIViewController { | |
let musicService = MusicService() |
// ProfileViewControllerTests.swift | |
func testShouldPlayMusicWhenViewDidLoad() { | |
// setup mock | |
class MockMusicService : MusicService { | |
var musicPlayed = false | |
override func play() { | |
musicPlayed = true | |
} | |
} |