Factor 是concatenative,基于堆栈的编程语言和高级功能,包括动态类型,可扩展语法,宏,和垃圾收集。在实践方面,有一个全功能的、支持许多不同的平台上的库,被广为记载。
示例代码:
USING: io math sequences ;"Hello world" print10 [ "Hello, Factor" print ] times"Hello, " "Factor" append print
Factor 0.97 发布,此版本现已提供下载。
此版本包括超过 1,400 个 commits,贡献者如下:
Alex Vondrak, Andrew Pennebaker, Benjamin Pollack, Björn Lindqvist, CW Alston, Doug Coleman, Erik Charlebois, Fred Alger, Iskander Sitdikov, John Benediktsson, Jon Harper, Loryn Jenkins, Paul Woolcock, Roc King, Samuel Tardieu, Steven Stewart-Gallus, and @Profpatsch
同时还有一些 bug 修复和库改进,值得关注的改进如下:
支持更多的 color spaces :LAB, LCH, LUV, RYB, xyY, XYZ 和 YUV
支持 Windows 的 SSL
添加了一些新的 checksum 实现和性能提升
跨平台 C 库 finder
IMAP 协议客户端
支持 MessagePack 编码和解码
支持 uuencoding and uudecoding
支持 terminfo 数据库文件
支持 tzinfo 文件
Support for in-place sorting (using Quicksort)
绑定了 ZeroMQ 和 Python
Runner for Applescript (including definition support)
printf 性能提升,支持 vprintf
支持在 GTK,Cocoa 和 Windows 后端保存图像
Generative Modeling Language
为编译器添加了大量的文档
大量的 FUEL emacs 模式改进
解决了一些向后兼容问题:
Fixed mask? in math.bitwise to be more correct
Fixed bias in Mersenne Twister random number generator
Better support for shebang (no longer need a space after #!)
io-error now lives in the libc vocabulary
sender stubs in cocoa.messages now named by method signature
filter now allocates length of seq, not exemplar.
Removed make-assoc in favor of explicit get's.
一些 FUEL 改进,Factor's emacs 模式:
Modernize for emacs 24.3
Prepare FUEL to be uploaded to MELPA
Change font locking and syntax highlighting
Make fuel-help work for vocabularies also
New minor mode: fuel-autohelp-mode
Fix word help to use correct vocabulary using list
Variable controlling whether fuel-mode is loaded automatically
Fixes to table rendering
新库:
alien.libraries.finder: cross-platform C library finder
checksums.fletcher: Fletcher in 16/32/64-bit
checksums.murmur: MurmurHash3 in 32-bit
checksums.superfast: SuperFastHash
checksums.xxhash: xxHash in 32-bit
cocoa.apple-script: runner for AppleScript
colors.distances: CIE76, CIE94, CIEDE2000, and CMC l:c color differences
colrs.lab: support for CIE 1976 LAB colors
colors.lch: support for CIELCH colors
colors.luv: support for CIE 1976 LUV colors
colors.ryb: support for RYB colors
colors.xyy: support for CIE 1931 xyY colors
colors.xyz: support for CIE 1931 XYZ colors
colors.yuv: support for YUV colors
compression.snappy: bindings to snappy compression library
crypto.aes: lookup-table AES implementation
cuesheet: parser for CUE files
curl: bindings for libcurl
editors.atom: support for Atom text editor
fftw: bindings to FFTW library
gml: support for Generative Modeling Language
grouping.extras: helpful words
html.entities: escape and unescape HTML5 entities
imap: client for IMAP servers
io.encodings.utf7: support for UTF7 encodings
io.streams.ansi: support for ANSI color streams
magic: bindings to libmagic
marvel: support for Marvel.com API
math.combinators: some convenience words
matrices.laplace: adding Laplace expansion
math.unicode: implement unicode math symbols
pcre: bindings for PCRE
python: bindings for Python
random.rdrand: random number generator using RDRAND instruction
rosetta-code.josephus-problem: solved
rosetta-code.metronome: solved
sorting.heap: implement Heapsort
sorting.quick: implement Quicksort
spotlight: adding Spotlight search wrapper for Mac OS X
terminfo: parser for terminfo database files
tzinfo: parser for timezone files
tools.dns.public: adding well-known public DNS servers
uu: support for uuencoding and uudecoding
yaml: reading and writing the YAML format
youtube: downloader for youtube.com
wikipedia: support historical events and article printing
windows.ntdll: process listing on Windows
windows.winmm: to play MP3 files
zeromq: bindings for ZeroMQ
改进的库:
arrays.shaped: iteration with indices, mapping operations
bson.reader: support reading sequence of BSON objects from a file
calendar.format: fix timestamp parsing without a timezone (fixes #861)
calendar.threads: support M\ timestamp sleep-until
circular: adding circular-loop
color-picker: show hex value of color
combinators.extras: more words
concurrency.combinators: adding parallel versions of cartesian-{map,each}
destructors: faster dispose-each
dlists: adding push-before and push-sorted
dns: support custom DNS server lookups
environment: adding with-os-env for using temporary environment variables
formatting: performance improvements, added vprintf for runtime formatting
google.translate: adding translate-tts
graphviz: miscellaneous improvements by @ajvondrak
grouping.extras: more words
hash-sets: minor cleanup
hashtables: minor cleanup
help.html: use tools.completions for searching
html.parser.analyzer: make find-between* work on nested tags
html.parser.printer: better html-text.
http.client: versions of http-get and friends that don't check response code
infix: adding INFIX:: word definitions
interpolate: adding generalized numbered string interpolation
io.binary: faster le> and signed-be> and signed>
io.binary.fast: generic be> and le> that try to be fast
io.directories: adding with-resource-directory
io.encodings.string: faster decode and encode for ascii and utf8
io.sockets.secure.openssl: fix subject name checks
io.streams.byte-array: performance improvements
io.streams.random: performance improvements
io.streams.string: performance improvements
ip-parser: adding ntoa and aton
math.bitwise: adding bit-length
math.combinatorics: performance improvements, k-permutations
math.extras: more words
math.factorials: adding factorials
math.functions: implement ldexp
math.matrices: performance improvements
math.ranges: implement sum on range objects
math.statistics: fix out-of-bounds in quantiles, more words
math.text.english: support ratio, float, complex
mirrors: strings can be inspected-sequence (fixes #857)
openal.examples: adding play-waveform and play-sine
pack: support numbered format strings (e.g., "4ci")
random: performance improvements
random.mersenne-twister: bug fixes
redis: adding hash commands, upgraded to modern protocol
semantic-versioning: support for Semantic Versioning 2.0.0
sequences: implement sum on iota-tuple objects
sequences.extras: more words
sequences.product: performance improvements
sequences.windowed: performance improvements
sets.extras: more words
sorting.insertion: performance improvements
spelling: minor fixes and performance improvements
spider: ignore non-html files
system-info: implement system-report. on Linux.
tools.deploy.config: specific deploy-directory
tools.dns: adding dns-host to lookup from a specific host
tools.test: allow testing from command-line
twitter: updates
units.imperial: more units
unix.users: add utility word to find a user's home directory
unix.utmpx: support on Linux and fixes on Mac OS X
webbrowser: support open-file on pathname objects
软件详情:http://factorcode.org/
下载地址:http://builds.factorcode.org/release?os=linux&cpu=x86.64
来自:开源中国社区

