117 lines
2.1 KiB
Plaintext
Executable File
117 lines
2.1 KiB
Plaintext
Executable File
- how to create a small module
|
|
- editor integration
|
|
- presentations
|
|
- module system
|
|
- copy and paste factoring, inverse
|
|
- help system
|
|
- tetris
|
|
- memoization
|
|
- editing inspector demo
|
|
- dynamic scope, lexical scope
|
|
|
|
Factor: contradictions?
|
|
-----------------------
|
|
|
|
Have our cake and eat it too
|
|
|
|
Research -vs- practical
|
|
High level -vs- fast
|
|
Interactive -vs- deployment
|
|
|
|
Factor from 10,000 feet
|
|
-----------------------
|
|
|
|
word: named function
|
|
vocabulary: module
|
|
quotation: anonymous function
|
|
classes, objects, etc.
|
|
|
|
The stack
|
|
---------
|
|
|
|
- Stack -vs- applicative
|
|
- Pass by reference, dynamically typed
|
|
- Stack languages: you can omit names where they're not needed
|
|
- More compositional style
|
|
- If you need to name things for clarity, you can:
|
|
lexical vars, dynamic vars, sequences, assocs, objects...
|
|
|
|
Functional programming
|
|
----------------------
|
|
|
|
Quotations
|
|
Curry
|
|
Continuations
|
|
|
|
Object-oriented programming
|
|
---------------------------
|
|
|
|
Generic words: sort of like open classes
|
|
Tuple reshaping
|
|
Editing inspector
|
|
|
|
Meta programming
|
|
----------------
|
|
|
|
Simple, orthogonal core
|
|
|
|
Why use a stack at all?
|
|
-----------------------
|
|
|
|
Nice idioms: 10 days ago
|
|
Copy and paste factoring
|
|
Easy meta-programming
|
|
Sequence operations correspond to functional operations:
|
|
- curry is adding at the front
|
|
- compose is append
|
|
|
|
UI
|
|
--
|
|
|
|
Written in Factor
|
|
renders with OpenGL
|
|
Windows, X11, Cocoa backends
|
|
You can call Windows, X11, Cocoa APIs directly
|
|
OpenGL 2.1 shaders, OpenAL 3D audio...
|
|
|
|
Tools
|
|
-----
|
|
|
|
Edit
|
|
Usages
|
|
Profiler
|
|
Easy to make your own tools
|
|
|
|
Implementation
|
|
--------------
|
|
|
|
Two compilers
|
|
Generational garbage collector
|
|
Non-blocking I/O
|
|
|
|
Hands on
|
|
--------
|
|
|
|
Community
|
|
---------
|
|
|
|
Factor started in 2003
|
|
About a dozen contributors
|
|
Handful of "core contributors"
|
|
Web site: http://factorcode.org
|
|
IRC: #concatenative on irc.freenode.net
|
|
Mailing list: factor-talk@lists.sf.net
|
|
|
|
C library interface
|
|
-------------------
|
|
|
|
Efficient
|
|
No need to write C code
|
|
Supports floats, structs, unions, ...
|
|
Function pointers, callbacks
|
|
Here is an example
|
|
|
|
TerminateProcess
|
|
|
|
process-handle TerminateProcess
|