My newest invention: The Glas Language (A Pythonic offshot)

https://news.ycombinator.com/item?id=5811786
by bhdz • 13 years ago
5 13 13 years ago
    #!/usr/bin/env glas

    print: "Welcome to Glas language"

    Person:
        name: last:"Random" & first: "Joe" & fathers: "Someone"
        # name = {'last':"Random", "first": "Joe", "fathers": "Someone" }
    
    
    print: person's name            # print(person.name)
    print: person's name's last     # print(person.name.last)
    print: last' person's name
    arguments = alpha, beta, gamma
    function application: *arguments

    a, b, c = 1, 2, 3
    calc discriminant: a, b, c      # calc_discriminant(a,b,c)

    # Glas doesn't care much about ','
    calc discriminant: a b c        # Same as before
    call discriminant: top segment, b, c 
                                    # If it sees ',' it combines 
                                    # all that is listed & adds it to current 
                                    # first param and moves on to the 
                                    # next one with "," (switches modes)

    object's perform something:
    quit:' my's company
    kill yourself:' motherfreaker
    kill:' and maim:' opponent
    check dead:' kill: with pistol' and maim: blunt object' opponent
    kill: with pistol' and maim: blunt object' opponent's check dead:

    # And he walked through the valey of 
    #  the shadows of death and he feared no evil
    # he.and_walked(
    #     through: "valey of shadows of death")
    #         .and_feared(not("evil")
    #     )

    and walked: "through the valey"' he's 
        and feared: not: "evil"
        # Ideal for code poetry hackatons! :D
        # Almost sounds like a real preacher, this Glas

    and warneth: "of temptation"' thee's and ignoreth: me
    # ahahahahahaa sorry 'bout that :)

    my: last: "Random" & first: "Joe"
    if len:  my's last' name > 10:
        print: "Your name is too big!"

    Bank Clerk: Person:
        initialize = my, name, job, salary, project:
            # my.name = name ...
            with my:
                name, job, salary, project' do:
                =: *project
                start working: project
                start slacking: "Doom3"
            start working: project' my
            receive payment: salary' my
        
            if my's hours > 40:
                complain: hours' my's boss
            if my's salary < 1500:
                complain: salary' my's boss
                start slacking' my # Oh my!
        
Tell me what you think ;)

~ ps: Glas means Voice in Bulgarian (Глас) or even Russian!

Related Stories

Loading related stories...

Source preview

news.ycombinator.com