From: arne@vajhoej.dk   
      
   On 1/3/2025 1:51 PM, Dan Cross wrote:   
   > In article , Arne Vajhøj    
   wrote:   
   >> On 1/3/2025 1:17 PM, Dan Cross wrote:   
   >>> In article <67781447$0$711$14726298@news.sunsite.dk>,   
   >>>> And also fixed in the description of VARYING further up.   
   >>>   
   >>> You should seriously mention the STRING type, though.   
   >>   
   >> I think VARYING OF CHAR is what is used most in VMS Pascal.   
   >   
   > Weird; I can't imagine why.   
      
   I never use string (on VMS).   
      
   $ search sys$common:[syshlp.examples.pascal]*.pas varying   
   $ search sys$common:[syshlp.examples.pascal]*.pas "string("   
      
   indicate that whoever write VMS Pascal examples also prefer   
   varying of char over string.   
      
   If I were to guess about why, then I believe it is historic   
   reasons. varying of char has been there since like forever.   
   string was added with ISO Pascal support later.   
      
   > Regardless, it may be worthwhile to   
   > at least mention it, since you state explicitly that there are   
   > three types for representing textual, string-like data, but   
   > VSI's documentation makes it clear that there are actually four.   
      
   Good point.   
      
   I have updated.   
      
   >>> Also, it's a bit of a bummer that you didn't mention nested   
   >>> functions/procedures, which are among the cooler aspects of the   
   >>> language:   
   >>>   
   >>> $ type foo.pas   
   >>> (* foo *)   
   >>> program foo(output);   
   >>> procedure hello;   
   >>> procedure world(var who: String);   
   >>> function punct: char;   
   >>> begin   
   >>> punct := '!'   
   >>> end;   
   >>> begin   
   >>> who := 'World' + punct   
   >>> end;   
   >>> var   
   >>> who: String (10);   
   >>> begin   
   >>> world(who);   
   >>> writeln('Hello, ', who)   
   >>> end;   
   >>> begin   
   >>> hello   
   >>> end.   
   >>   
   >> There is already an example. fac is inside testfac.   
   >>   
   >> I will add a note about it.   
   >   
   > Ah, I see it now; the lack of indentation makes it hard to spot.   
      
   I don't indent them.   
      
   With the blank lines I put in then I feel that indenting   
   nested procedures/functions would make it too much space.   
      
   But it is a close decision. In C# I do not use blank lines   
   and I do indent local methods.   
      
   Same code:   
      
   using System;   
      
   public class Program   
   {   
    public static void TestFac()   
    {   
    int Fac(int n)   
    {   
    if(n < 2)   
    {   
    return 1;   
    }   
    else   
    {   
    return n * Fac(n - 1);   
    }   
    }   
    for(int i = 0; i < 6; i++)   
    {   
    Console.WriteLine("fac({0})={1}", i, Fac(i));   
    }   
    }   
    public static void Main(string[] args)   
    {   
    TestFac();   
    }   
   }   
      
   Arne   
      
   --- SoupGate-DOS v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|