Skip to content

Instantly share code, notes, and snippets.

View isaac-weisberg's full-sized avatar
💭
🤔🤔🤔

Isaac Weisberg isaac-weisberg

💭
🤔🤔🤔
View GitHub Profile
protocol Bar {
var baz: Int { get }
}
func foo() -> Bar {
class BarImpl: Bar {
let baz: Int
init(_ value: Int) {
baz = value
func foo() -> (baz: Int, buck: String) {
return (baz: 3, buck: "Shitty titties")
}
let val = foo()
let baz = val.baz
void foo() {
__block int baz = 3;
int (^getBaz)(void) = ^{
return baz;
};
void (^setBaz)(int newValue) = ^(int newValue){
baz = newValue;
};
struct FooReturn {
int (^getBaz)(void);
void (^setBaz)(int newValue);
};
struct FooReturn foo(int initialBazValue) {
__block int baz = initialBazValue;
int (^getBaz)(void) = ^{
return baz;
func foo(_ initialBazValue: Int) -> (getBaz: () -> Int, setBaz: (Int) -> Void) {
var baz = initialBazValue
let getBaz = { baz }
let setBaz = { baz = $0 }
return (
getBaz: getBaz,
setBaz: setBaz
)
#include <tuple>
auto foo(int initialBaz) {
int baz = initialBaz;
auto getBaz = [&] {
return baz;
};
auto setBaz = [&](int newValue) {
auto foo() {
class Bar {
public:
int baz;
};
Bar ret;
ret.baz = 3;
return ret;
function foo(initialBaz) {
return {
baz: initialBaz,
getBaz() {
return this.baz
},
setBaz(newValue) {
this.baz = newValue
}
}
@isaac-weisberg
isaac-weisberg / closures.c
Created November 23, 2018 15:24
Closure mechanism implementation in pure C
#include <stdlib.h>
typedef struct {
int someInt;
char* someString; // and other captured objects
} Captures;
int addingStuff(Captures* captures, int param) {
return captures->someInt + param;
}
import Foundation
import Cocoa
/*
SETUP
*/
let payload = """
{
"things": [