Skip to content

Instantly share code, notes, and snippets.

onlurking /
Created Jun 1, 2020
Programming as Theory Building - Peter Naur

Programming as Theory Building

Peter Naur

Peter Naur's classic 1985 essay "Programming as Theory Building" argues that a program is not its source code. A program is a shared mental construct (he uses the word theory) that lives in the minds of the people who work on it. If you lose the people, you lose the program. The code is merely a written representation of the program, and it's lossy, so you can't reconstruct



The function manipulation language

"I just implemented Conway's Game of Life in two lines of code. #fml"

pad = x flip[stitch] 0, stitch 0, flip[cat] 0, cat 0
life = pad, neighborhoods[3 3], [ravel, [sum in?: [x @ 4, + 3; 3]]]/2
tangentstorm / something4thy.js
Created Aug 2, 2013
something 4thy this way comes...
View something4thy.js
var b4 = (new function() { var EOF='\0',self = {
d:[], a:[], // data and auxiliary/return stack
defs:[],core:[],scope:[], // dictionary
base:10, // numbers
cp:-1, ch:'\x01',ibuf:[],wd:'', // lexer state
compiling:false,state:[],target:[], // compiler state
def : function (k,v){
var res=self.defs.length; self.defs.push(v); self.scope[0].push([k,res]); return res },
koo5 / source.txt
Created Nov 22, 2012
"The Amazing Interactive Turing Machine" by "J.D. Clemens"
View source.txt
"The Amazing Interactive Turing Machine" by "J.D. Clemens"
Section 1 - Bibliographic Data
The story headline is "An Interactive Waste of Time".
The story genre is "Other".
The story description is "You have almost reached the end of your shift. All that remains is to clean one final room, the control room for that weird contraption being built by the scientists here. Carrying your usual equipment, you open the door and step into... The Amazing Interactive Turing Machine!"
Release along with source text and a website.
emmanuel / file.sql
Created Jun 2, 2011
Closure Table operations SQL fragments
View file.sql
-- Retrieve descendants
-- ====================
-- retrieve descendants of #4
FROM Comments AS c
JOIN TreePaths AS t ON c.comment_id = t.descendant
WHERE t.ancestor = 4;
-- Retrieve ancestors
jpjacobs / som.ijs
Last active Feb 29, 2016
Kohonen SOM
View som.ijs
NB. Self-Organising map
require 'math/lapack/geev'
require 'tables/csv'
require 'viewmat'
NB. closeall_jviewmat_ ''
NB. parameters:
N =: 30 NB. side of neuron map. (N -> (*:N) neurons)
ntrain =: 25 NB. number of training samples per class
niter =: 10000 NB. number of iterations
'a0 an' =: 25 1 NB. Starting and ending learning factor
h> (map sum)[[0..n]|n<-[0..10]
j] +/"1 i."0 >:i.11

j] +~^:5]1
h> let rfx f y = f y y ; pow = (\n f -> if n == 0 then id else f . pow (n-1) f) in pow 5 (rfx (+)) 1 

j] +/~i.4
View serial.go
type Message struct {
type string
midiData [3]byte
sysexLen int
func NewBoard() *Board {
b := &Board{}
// Start the message loops
alexaltair / Today's
Last active Dec 18, 2015
An exploration of infinite lists.
View Today's

The first thing that really surprised me today was the flexibility of Ruby's shovel operator, <<. A student in the class had tried the following:

a = [0]
a << a

What do you think a is now? I was sure it would be [0, [0]]. But lo and behold, Ruby sparkles;

a = [0]
a << a
tangentstorm / objpas-lexer.txt
Created Feb 27, 2013
Lexer DFA for object pascal
View objpas-lexer.txt
You can’t perform that action at this time.