BCX Console Demonstration Program S150.bas

 ' --------------------------------------------------------------
 ' BCX version 3.41 brought FUNCTION and SUB pointers to BCX
 ' Wayne Halsdorf demonstrates how they work in the sample below
 ' --------------------------------------------------------------
 
 DIM x AS DOUBLE
 DIM y AS DOUBLE
 DIM pf(a AS DOUBLE, b AS DOUBLE) AS FUNCTION DOUBLE
 
 x = 1.23
 y = 1.67
 pf = GeometricMean
 CALL Test
 
 pf = Average
 CALL Test
 
 SUB Test
   DIM z AS DOUBLE
   z = pf(x, y)
   ? z
 END SUB
 
 FUNCTION GeometricMean(a AS DOUBLE, b AS DOUBLE) AS DOUBLE
   FUNCTION = SQRT(a * b)
 END FUNCTION
 
 FUNCTION Average(a AS DOUBLE, b AS DOUBLE) AS DOUBLE
   FUNCTION = (a + b) / 2
 END FUNCTION