This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; proof of concept (but usable!) implementation of immutable persistent 'blocks' in Red | |
; author: Jay G. Porcasi (@numberjay) | |
; the exported API is at the bottom, starting with: set '<function name> ... | |
; free to use without any warranty of any kind: use at your own leisure and risk | |
; for bugs, suggestions, questions... comment here below or reach me on Gitter (@numberjay) | |
; copyright Jay G. Porcasi 2017 | |
context [ | |
; all functions ending with ' are helper functions working on 'immutable' blocks only |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Red [ | |
author: ["Gregg Irwin"] | |
notes: { | |
Experimental requesters, for design discussion. Not just about the | |
implementation, but about modal vs modeless dialogs. I think there's | |
value in the simple, modal approach, but we probably want to provide | |
more advanced options. e.g. document/sheet modal, and mobile standard | |
approaches. | |
TBD: Determine if we want to build everything on inner funcs that are |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Red [ | |
Author: [@greggirwin @endo @toomasv @hiiamboris] | |
Purpose: "COMPOSE for strings" | |
Notes: { | |
TBD: Security model for eval'ing expressions | |
TBD: Decide if support for custom marker and eval contexts are worthwhile | |
TBD: Finalize refinement names | |
TBD: Decide if suport for function contexts is worthwhile | |
TBD: Make it a macro? | |
TBD: Decide if file and url params should be read automatically |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Red [] | |
e.g.: :comment | |
delta-time: function [ | |
"Return the time it takes to evaluate a block" | |
code [block! word! function!] "Code to evaluate" | |
/count ct "Eval the code this many times, rather than once" | |
][ | |
ct: any [ct 1] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; Stats added by @toomasv | |
compare-times: func [ | |
blocks "Block of code blocks to performance compare" | |
/count ct | |
/local t n baseline res blk stats1 memory time code template | |
][ | |
ct: any [ct 1] | |
t: now/time/precise | |
loop ct [do []] | |
baseline: now/time/precise - t |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Red [ | |
title: "Red Object Browser" | |
author: "Gregg Irwin" | |
needs: 'View | |
] | |
e.g.: :comment | |
map-ex: func [ | |
"Evaluates a function for all values in a series and returns the results." |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Red [ | |
Title: "Nsource - native source" | |
Purpose: "Print source for native functions" | |
Author: "Boleslav Březovský" | |
Date: "8-6-2017" | |
] | |
indent: func [ | |
"(Un)indent text by tab" | |
string [string!] "Text to (un)indent" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Red [ | |
title: "Paint" | |
Author: [REBOL version "Frank Sievertsen" Red port "Gregg Irwin"] | |
File: %paint-with-time-travel.red | |
Tabs: 4 | |
Needs: View | |
version: 0.0.3 | |
Notes: { | |
The original didn't have time travel. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
collect-values: function [ | |
"Collect values in a block, by type or custom parse rule" | |
block [block!] | |
rule "Datatype, prototype value, or parse rule" | |
/deep "Include nested blocks" | |
/local v | |
][ | |
rule: switch/default type?/word rule [ | |
datatype! [reduce [rule]] ; Turn a plain datatype into a parse rule for that type. | |
block! typeset! [:rule] ; Blocks and typesets (e.g. any-word!) work directly as rules. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Red [] L: charset "ABCDEFGHI" D: union N: charset "123456789" charset "0" | |
repeat y 9 [repeat x 9 [col: either x = 1 [#"^(2028)"][#"A" + (x - 2)] | |
append p: [] set ref: (to word! rejoin [col y - 1]) make face! [size: 90x24 | |
type: pick [text field] header?: (y = 1) or (x = 1) | |
offset: -20x10 + as-pair ((x - 1) * size/x + 2) ((y - 1) * size/y + 1) | |
text: form case [y = 1 [col] x = 1 [y - 1] 'else [copy ""]] | |
para: make para! [align: pick [center right] header?] | |
extra: object [name: form ref formula: old: none] | |
actors: context [on-create: on-unfocus: function [f e][f/color: none | |
if rel: f/extra/old [react/unlink rel 'all] |