Category:TXR: Difference between revisions
No edit summary |
(Rewrite; eliminate rambling.) |
||
(25 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
{{language |
|||
|site=http://www.nongnu.org/txr/}} |
|||
{{language programming paradigm|functional}} |
|||
{{language programming paradigm|procedural}} |
|||
{{language programming paradigm|object-oriented}} |
|||
{{language programming paradigm|imperative}} |
|||
{{language programming paradigm|declarative}} |
|||
TXR is a new language implemented in [[C]], running on POSIX platforms such as [[Linux]], [[Mac OS X]] and [[Solaris]] as well as on [[Microsoft Windows]]. It is a dynamic, high level language originally intended for "data munging" tasks in Unix-like environments, particularly tasks requiring accurate, robust text scraping from loosely structured documents. |
|||
TXR[http://www.nongnu.org/txr/] is a new text extraction language implemented in C, running on Linux (and possibly other POSIX platforms). |
|||
The Rosetta Code TXR solutions can be viewed in color, and all on one page with a convenient navigation pane [http://www.nongnu.org/txr/rosetta-solutions.html here]. |
|||
Here is a very basic hello-world-type TXR query that re-implements the "free" utility: |
|||
TXR started as a language for "reversing here-documents": evaluating a template of text containing variables, plus useful pattern matching directives, against some body of text and binding pieces of the text which matches variables. The variable bindings were output in POSIX shell variable assignment syntax, allowing for shell code like |
|||
<lang txr>#!/usr/bin/txr -f |
|||
@(next "/proc/meminfo") |
|||
@(skip) |
|||
MemTotal:@/ +/@TOTAL kB |
|||
MemFree:@/ +/@FREE kB |
|||
Buffers:@/ +/@BUFS kB |
|||
Cached:@/ +/@CACHED kB |
|||
@(skip) |
|||
SwapTotal:@/ +/@SWTOT kB |
|||
SwapFree:@/ +/@SWFRE kB |
|||
@(next `!echo $(( @TOTAL - @FREE ))`) |
|||
@USED |
|||
@(next `!echo $(( @USED - @BUFS - @CACHED ))`) |
|||
@RUSED |
|||
@(next `!echo $(( @FREE + @BUFS + @CACHED ))`) |
|||
@RFREE |
|||
@(next `!echo $(( @SWTOT - @SWFRE ))`) |
|||
@SWUSE |
|||
@(output) |
|||
TOTAL USED FREE BUFFERS CACHED |
|||
Mem: @{TOTAL -12} @{USED -12} @{FREE -12} @{BUFS -12} @{CACHED -12} |
|||
+/- buffers/cache: @{RUSED -12} @{RFREE -12} |
|||
Swap: @{SWTOT -12} @{SWUSE -12} @{SWFRE -12} |
|||
@(end)</lang> |
|||
<code>eval $(txr <txr-program> <args> ...)</code> |
|||
Sample run: |
|||
TXR was internally based, from the beginning, on a data model based on Lisp and eventually exposed a Lisp dialect that came to be known as TXR Lisp. TXR Lisp at first complemented the pattern extraction language, extending its power, but eventually became distinct. Programs can be written in TXR Lisp with no traces of the TXR pattern language, or vice versa. |
|||
<pre>$ ./meminfo.txr |
|||
TOTAL USED FREE BUFFERS CACHED |
|||
Mem: 769280 647752 121528 160108 286844 |
|||
+/- buffers/cache: 200800 568480 |
|||
Swap: 1048568 18200 1030368 |
|||
</pre> |
|||
TXR Lisp is an original dialect that contains many innovative features, which orchestrate together to express neat, compact solutions to everyday data processing problems. Programmers familiar with Common Lisp will be comfortable with TXR Lisp, and there is much to like for those who use Scheme, Racket or Clojure. TXR Lisp incorporates ideas from contemporary scripting languages also; a key motivation in many of its developments is the promotion of succinctness, which is something that often isn't associated with languages in the Lisp family. |
|||
Arithmetic is not implemented in TXR as of version 035. The above example simply continues the pattern matching across invocations of echo to borrow the shell to do math. The command |
|||
<pre>@(next `!echo $(( @TOTAL - @FREE ))`) |
|||
@USED |
|||
</pre> |
|||
means, "Next, please switch to scanning the output of this echo command with some variables substituted in. |
|||
Then capture entire first line of this command into the USED variable." |
Latest revision as of 05:16, 6 October 2016
This programming language may be used to instruct a computer to perform a task.
Official website |
---|
See Also: |
|
---|
TXR is a new language implemented in C, running on POSIX platforms such as Linux, Mac OS X and Solaris as well as on Microsoft Windows. It is a dynamic, high level language originally intended for "data munging" tasks in Unix-like environments, particularly tasks requiring accurate, robust text scraping from loosely structured documents.
The Rosetta Code TXR solutions can be viewed in color, and all on one page with a convenient navigation pane here.
TXR started as a language for "reversing here-documents": evaluating a template of text containing variables, plus useful pattern matching directives, against some body of text and binding pieces of the text which matches variables. The variable bindings were output in POSIX shell variable assignment syntax, allowing for shell code like
eval $(txr <txr-program> <args> ...)
TXR was internally based, from the beginning, on a data model based on Lisp and eventually exposed a Lisp dialect that came to be known as TXR Lisp. TXR Lisp at first complemented the pattern extraction language, extending its power, but eventually became distinct. Programs can be written in TXR Lisp with no traces of the TXR pattern language, or vice versa.
TXR Lisp is an original dialect that contains many innovative features, which orchestrate together to express neat, compact solutions to everyday data processing problems. Programmers familiar with Common Lisp will be comfortable with TXR Lisp, and there is much to like for those who use Scheme, Racket or Clojure. TXR Lisp incorporates ideas from contemporary scripting languages also; a key motivation in many of its developments is the promotion of succinctness, which is something that often isn't associated with languages in the Lisp family.
Subcategories
This category has the following 3 subcategories, out of 3 total.
@
- TXR examples needing attention (empty)
- TXR Implementations (empty)
- TXR User (3 P)
Pages in category "TXR"
The following 160 pages are in this category, out of 160 total.
A
C
- Caesar cipher
- Call a foreign-language function
- Call a function in a shared library
- Call an object method
- Canonicalize CIDR
- Classes
- Closures/Value capture
- Combinations
- Combinations with repetitions
- Comma quibbling
- Command-line arguments
- Comments
- Compile-time calculation
- Compound data type
- Conditional structures
- Constrained genericity
- Count occurrences of a substring
- CRC-32
- CSV data manipulation
- CSV to HTML translation
- Currying
E
F
H
L
M
P
Q
R
S
- S-expressions
- Scope modifiers
- Send email
- Set consolidation
- SHA-256
- Shell one-liner
- Short-circuit evaluation
- Show ASCII table
- Singleton
- Sleep
- Smallest square that begins with n
- Sockets
- Sort stability
- Sort three variables
- Soundex
- Special characters
- String matching
- Strip a set of characters from a string
- Strip control codes and extended characters from a string
- Strip whitespace from a string/Top and tail
- Sum of a series
- Summarize and say sequence
- Synchronous concurrency