What statically typed languages are similar to Python? [closed] What statically typed languages are similar to Python? [closed] python python

What statically typed languages are similar to Python? [closed]


Boo is a statically typed language for the Common Language Infrastructure (aka. the Microsoft .NET platform). The syntax is highly inspired by Python, and hashes/lists/array are part of the syntax:

i = 5if i > 5:    print "i is greater than 5."else:    print "i is less than or equal to 5."hash = {'a': 1, 'b': 2, 'monkey': 3, 42: 'the answer'}print hash['a']print hash[42]for item in hash:    print item.Key, '=>', item.Value


Cobra is a statically typed language for the CLR (as Boo). From its web page:

Cobra is a general purpose programming language with:

 - a clean, high-level syntax - static and dynamic binding - first class support for unit tests and contracts - compiled performance with scripting conveniences - lambdas and closures - extensions and mixins - ...and more
Sample code:"""This is a doc string for the whole module."""class Person    """    This is a class declaration.    """    var _name as String  # declare an object variable. every instance of Person will have a name    var _age as int    cue init(name as String, age as int)        _name = name        _age = age    def sayHello        # This is a method        # In strings, anything in brackets ([]) is evaluated as an expression,        # converted to a string and substituted into the string:        print 'Hello. My name is [_name] and I am [_age].'    def add(i as int, j as int) as int        """ Adds the two arguments and returns their sum. """        return i + j


Although it is not object-oriented, Haskell offers a significant number of the features that interest you:

  • Syntax support for list comprehensions, plus do notation for a wide variety of sequencing/binding constructs. (Syntax support for dictionaries is limited to lists of pairs, e.g,

    dict = ofElements [("Sputnik", 1957), ("Apollo", 1969), ("Challenger", 1988)]
  • Functions support full closures and multiple return values using tuple types. Keyword arguments are not supported but a powerful feature of "implicit arguments" can sometimes substitute.

  • No runtime modification of classes, types or objects.

  • Avoidance of specificying classes/types everywhere through type inference.

  • Metaprogramming using Template Haskell.

Also, just so you will feel at home, Haskell has significant indentation!

I actually think Haskell has quite a different feel from Python overall, but that is primarily because of the extremely powerful static type system. If you are interested in trying a statically typed language, Haskell is one of the most ambitious ones out there right now.