From 96ad040ed77d844aa01a1dae29855704d2fd6455 Mon Sep 17 00:00:00 2001 From: John Benediktsson Date: Thu, 31 Mar 2016 09:14:30 -0700 Subject: [PATCH] sequences.frozen: adding virtual "frozen" sequences. --- extra/sequences/frozen/authors.txt | 1 + extra/sequences/frozen/frozen-tests.factor | 8 ++++++++ extra/sequences/frozen/frozen.factor | 18 ++++++++++++++++++ extra/sequences/frozen/summary.txt | 1 + 4 files changed, 28 insertions(+) create mode 100644 extra/sequences/frozen/authors.txt create mode 100644 extra/sequences/frozen/frozen-tests.factor create mode 100644 extra/sequences/frozen/frozen.factor create mode 100644 extra/sequences/frozen/summary.txt diff --git a/extra/sequences/frozen/authors.txt b/extra/sequences/frozen/authors.txt new file mode 100644 index 0000000000..e091bb8164 --- /dev/null +++ b/extra/sequences/frozen/authors.txt @@ -0,0 +1 @@ +John Benediktsson diff --git a/extra/sequences/frozen/frozen-tests.factor b/extra/sequences/frozen/frozen-tests.factor new file mode 100644 index 0000000000..1068a1033d --- /dev/null +++ b/extra/sequences/frozen/frozen-tests.factor @@ -0,0 +1,8 @@ +USING: arrays kernel sequences sequences.frozen +sequences.private tools.test ; + +{ { 1 2 3 } } [ { 1 2 3 } >array ] unit-test + +[ 1 1 { 1 2 3 } set-nth ] [ immutable? ] must-fail-with + +{ "abc" } [ "abc" dup like ] unit-test diff --git a/extra/sequences/frozen/frozen.factor b/extra/sequences/frozen/frozen.factor new file mode 100644 index 0000000000..640ac6dd28 --- /dev/null +++ b/extra/sequences/frozen/frozen.factor @@ -0,0 +1,18 @@ +! Copyright (C) 2009 John Benediktsson +! See http://factorcode.org/license.txt for BSD license +USING: accessors sequences ; +IN: sequences.frozen + +TUPLE: frozen { seq read-only } ; + +C: frozen + +M: frozen virtual@ seq>> ; + +M: frozen virtual-exemplar seq>> ; + +M: frozen length seq>> length ; + +INSTANCE: frozen virtual-sequence + +INSTANCE: frozen immutable-sequence diff --git a/extra/sequences/frozen/summary.txt b/extra/sequences/frozen/summary.txt new file mode 100644 index 0000000000..2336a71c59 --- /dev/null +++ b/extra/sequences/frozen/summary.txt @@ -0,0 +1 @@ +Virtual "frozen" sequences