January 29, 200718 yr Name & Parameters: [color:red][big] ValuesGreaterThan ( listvalues ; reference ) [/big] Description: Returns all values in a list that are greater than the reference parameter. Originally written by Jeremy Bante, OshVay Systems, Inc., but was lost, so I rewrote it. Also changed parameter name to listvalues to avoid new reserved word list Used by QuickSort( list ), also originally written by Jeremy Sample Input: Results: Recursive: yes Formula: /* ValuesGreaterThan ( listvalues; reference ) Returns all values in list that are greater than the reference parameter Theo Gantos - TEKA, Inc. - www.tekainc.com Originally written by Jeremy Bante, OshVay Systems, Inc., but was lost, so I rewrote it Also changed parameter name to listvalues to avoid new reserved word list Used by QuickSort( list ), also originally written by Jeremy */ Let ( listLength = ValueCount( listvalues); Case ( // if the first element is greater than the reference... LeftValues ( listvalues; 1 ) > reference ; // return the first element LeftValues( listvalues; 1) ) & Case ( // if list is not trivial [there's more than one element] listLength > 1; // return all other elements greater than reference ValuesGreaterThan ( RightValues( listvalues; listLength - 1); reference ) ) ) // end Let Required Functions: Author(s) teka Date: 01/28/07 Credits: Jeremy Bante Disclaimer: FM Forums does not endorse or warrantee these files are fit for any particular purpose. Do not post or distribute files without written approval from the copyright owner. All files are deemed public domain unless otherwise indictated. Please backup every file that you intend to modify.
February 23, 200718 yr The above produces unwanted trailing returns. Here is my suggested mod: /* Modified by Bruce Robertson to eliminate trailing returns ValuesGreaterThan( listvalues; reference) Theo Gantos - TEKA, Inc. - www.tekainc.com Returns all values in list that are greater than the reference parameter Originally written by Jeremy Bante, OshVay Systems, Inc., but was lost, so I rewrote it Original function used the parameter List, which is now a reserved word, changed to listvalues. Used by QuickSort(listvalues), also written by Jeremy */ Let( listLength = ValueCount( listvalues ); //if the first element is greater than the reference... //return the first element //if list is not trivial [there's more than one element] //return all other elements greater than reference Case( listLength = 1 and GetValue( listvalues; 1) > reference; GetValue( listvalues; 1); listLength > 1; Case( GetValue( listvalues; 1) > reference; LeftValues( listvalues; 1) ) & ValuesGreaterThan( RightValues( listvalues; listLength - 1); reference) ) ) //end Let()
Create an account or sign in to comment