"Hello world" program

Gamma: Version 4.0
Prev | Chapter 4. Tutorial I | Next

# 4.2. "Hello world" program

This example program prints a personalized "Hello" message a given number of times. It demonstrates variable naming, function definitions and basic control structures, as well as command line arguments.

The program also shows the basic similarities between Gamma and the C language, and some important differences which highlight the power of Gamma.

        #!/usr/cogent/bin/gamma

        /* This function iterates, saying hello to the given name.
        In Gamma, all functions return a value, which is the
        result of the last evaluated expression in the function.
        In this case, we return the string "ok".
        */

        function say_hello (name, n)
        {
            local i;

            for (i = 0; i < n; i++)
                princ ("Hello ", name, "\n");
                "ok";
        }

        /* A program may optionally have a function main()
        declared, in which case Gamma will execute the
        main() function after all of the program file has been
        read in. If no main() declared, the programmer must
        explicitly call a function or enter an event loop at
        some point while reading the file. Any code which is not a
        function definition will be automatically run AS THE FILE
        IS READ. This is useful for providing feedback to the user
        while loading.  */

        function main ()
        {
            /* Define some locally scoped variables. Notice that
            Gamma implements abstract data typing, so it is not
            necessary to declare the variable type.
            */

            local repeat = 1, my_name = "world";

            /* Access the command line arguments. argv is a list of the
            command line arguments, as strings, where the first argument
            is the program name.  */

            /* The second argument (cadr(argv)) is my_name,
            if present.
            */

            if (cadr(argv))
                my_name = cadr (argv);

            /* The third argument (caddr(argv)) is the number
            of iterations, if present.
            */

            if (caddr(argv))
                repeat = number (caddr(argv));

            /_now print the message */

            result = say_hello (my_name, repeat);
            princ (result, "\n");
        }

Prev | Home | Next
Tutorial I | Up | Control Flow

Copyright 1995-2002 by Cogent Real-Time Systems, Inc.