LINUX.ORG.RU

История изменений

Исправление merhalak, (текущая версия) :

Да, я в курсе про него. Мне просто больше нравится PEP 484 стиль кода, который больше похож на это (Nim)

import macros, strutils

macro toEnum(words: static[string]): untyped =
  result = newTree(nnkEnumTy, newEmptyNode())

  for w in splitWhitespace(words):
    result.add ident(w)

type
  Color = toEnum"Red Green Blue Indigo"

var color = Indigo

Нежели на это (Cython)

def primes(unsigned int nb_primes):
    cdef int n, i
    cdef vector[int] p
    p.reserve(nb_primes)  # allocate memory for 'nb_primes' elements.

    n = 2
    while p.size() < nb_primes:  # size() for vectors is similar to len()
        for i in p:
            if n % i == 0:
                break
        else:
            p.push_back(n)  # push_back is similar to append()
        n += 1

    # Vectors are automatically converted to Python
    # lists when converted to Python objects.
    return p

Хотя разница всего ничего, конечно.

Но если учитывать вкусовщину - я бы предпочёл Nim.

Хотя ни на том, ни на другом я пока что программировать не собираюсь, мне хватает моей необъятной Java и, ради хобби, Go.

Хотя посмотрел на первый пример с применением макро, и что-то Nim трогать тоже расхотелось как-то. :D

Исправление merhalak, :

Да, я в курсе про него. Мне просто больше нравится PEP 484 стиль кода, который больше похож на это (Nim)

import macros, strutils

macro toEnum(words: static[string]): untyped =
  result = newTree(nnkEnumTy, newEmptyNode())

  for w in splitWhitespace(words):
    result.add ident(w)

type
  Color = toEnum"Red Green Blue Indigo"

var color = Indigo

Нежели на это (Cython)

def primes(unsigned int nb_primes):
    cdef int n, i
    cdef vector[int] p
    p.reserve(nb_primes)  # allocate memory for 'nb_primes' elements.

    n = 2
    while p.size() < nb_primes:  # size() for vectors is similar to len()
        for i in p:
            if n % i == 0:
                break
        else:
            p.push_back(n)  # push_back is similar to append()
        n += 1

    # Vectors are automatically converted to Python
    # lists when converted to Python objects.
    return p

Хотя разница всего ничего, конечно.

Но если учитывать вкусовщину - я бы предпочёл Nim.

Хотя ни на том, ни на другом я пока что программировать не собираюсь, мне хватает моей необъятной Java и, ради хобби, Go.

Исходная версия Deleted, :

Да, я в курсе про него. Мне просто больше нравится PEP 484 стиль кода, который больше похож на это (Nim)

import macros, strutils

macro toEnum(words: static[string]): untyped =
  result = newTree(nnkEnumTy, newEmptyNode())

  for w in splitWhitespace(words):
    result.add ident(w)

type
  Color = toEnum"Red Green Blue Indigo"

var color = Indigo

Нежели на это (Cython)

def primes(unsigned int nb_primes):
    cdef int n, i
    cdef vector[int] p
    p.reserve(nb_primes)  # allocate memory for 'nb_primes' elements.

    n = 2
    while p.size() < nb_primes:  # size() for vectors is similar to len()
        for i in p:
            if n % i == 0:
                break
        else:
            p.push_back(n)  # push_back is similar to append()
        n += 1

    # Vectors are automatically converted to Python
    # lists when converted to Python objects.
    return p

Хотя разница всего ничего, конечно.