From fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4 Mon Sep 17 00:00:00 2001
From: Joseph Hunkeler <jhunkeler@gmail.com>
Date: Wed, 8 Jul 2015 20:46:52 -0400
Subject: Initial commit

---
 pkg/language/doc/isindef.hlp | 56 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 56 insertions(+)
 create mode 100644 pkg/language/doc/isindef.hlp

(limited to 'pkg/language/doc/isindef.hlp')

diff --git a/pkg/language/doc/isindef.hlp b/pkg/language/doc/isindef.hlp
new file mode 100644
index 00000000..481d9cc0
--- /dev/null
+++ b/pkg/language/doc/isindef.hlp
@@ -0,0 +1,56 @@
+.help isindef Dec03 language
+.ih
+NAME
+isindef -- test whether a value or expression is INDEF
+.ih
+USAGE
+bool = isindef (expr)
+.ih 
+PARAMETERS
+.ls expr
+A script variable or boolean expression.
+.le
+.ih
+DESCRIPTION
+\fIIsindef\fR is a boolean intrinsic function returning true ("yes") if the
+\fIexpr\fR evaluates to INDEF, and false ("no") otherwise.  When \fIexpr\fR
+is a script variable or the literal string "INDEF" this function is equivalent
+to a test for equality with INDEF, i.e. "x == INDEF".  A less obvious use
+is when INDEF values are used to test for less/greater-than evaluation
+in boolean expressions which result in an INDEF value for the expression as a
+whole (rather than a boolean return) and which can cause confusion about why
+the expression apparently fails.  INDEF values in scripts may only be used to
+test for equality, otherwise the return value is indefinite and when used in
+a compound expression the entire expression is also indefinite.  The
+\fIisindef\fR function provides a way to trap such cases in scripts.  
+
+\fIIsindef\fR can only be called as a function in an expression, not as a task.
+.ih
+EXAMPLES
+1. Test variables for INDEF values:
+
+.nf
+    cl> x = INDEF
+    cl> = (x == INDEF)
+    yes
+    cl> = isindef (x)
+    yes
+    cl> = isindef (x == INDEF)
+    no
+
+        \fINote:\fR  In this last case the function returns a 'no' since
+        the evaluation of "x == INDEF" is 'yes' and not 'INDEF'.
+
+    cl> = isindef (x == INDEF || x < 0)
+    yes
+
+        \fINote:\fR  In this case the test "x < 0" is indefinite and 
+	causes the entire expression to evaluate to INDEF, and so the
+	function returns 'yes' even though the first expression is a
+	valid boolean.
+.fi
+.ih
+BUGS
+.endhelp
+.ih
+SEE ALSO
-- 
cgit 

