Skip to content

Instantly share code, notes, and snippets.

/// An operator is given by a list of arities, where each element indicates the number of
/// variables bound by the operator at that position and the length of the list determines the
/// number of variables the operator accepts. The full generalization of arity is called
/// the operator's "valence".
///
/// For example, if I have a little calculator language with let-bindings, its operators
/// would look like this:
///
///
/// enum CalcOps : Operator {
@avafloww
avafloww / PhpJava.java
Last active August 12, 2025 13:33
This snippet of code is syntactically valid in both PHP and Java, and produces the same output in both.
/*<?php
//*/public class PhpJava { public static void main(String[] args) { System.out.printf("/*%s",
//\u000A\u002F\u002A
class PhpJava {
static function main() {
echo(//\u000A\u002A\u002F
"Hello World!");
}}
//\u000A\u002F\u002A
PhpJava::main();
@CodaFi
CodaFi / Proposal.md
Last active October 12, 2023 00:03
import UIKit
struct Monoid<A> {
let zero: A
let append: (A, A) -> A
}
let additive = Monoid(zero: 0, append: +)
let multiplicative = Monoid(zero: 1, append: *)
@mayoff
mayoff / main.m
Created May 31, 2017 15:43
adding objc_boxable to CoreGraphics structs
@import Foundation;
@import CoreGraphics;
typedef struct __attribute__((objc_boxable)) CGPoint CGPoint;
typedef struct __attribute__((objc_boxable)) CGSize CGSize;
typedef struct __attribute__((objc_boxable)) CGRect CGRect;
typedef struct __attribute__((objc_boxable)) CGVector CGVector;
int main(int argc, const char * argv[]) {
@autoreleasepool {
@harryworld
harryworld / ui-rule.mdc
Created May 21, 2025 22:20
Cursor Rules for iOS app development using modern SwiftUI (iOS 17 or later)
# UI framework rules for SwiftUI
1. State Management:
- Use `@Observable` for reference types holding business logic and app state.
- Use `@Bindable` properties within @Observable classes so SwiftUI views can bind directly to them.
- Avoid `@State` for view model observation, rely on `let model: MyModel` instead.
- Pass dependencies via initialisers rather than as global singletons.
- Use `@Environment` for app-wide or large-scope states.
- `@State` is only for view-local state.
- Use `@Binding` only if necessary