Описание тега nim
Nim (ранее известный как "Nimrod") - это статически типизированный императивный язык программирования, который пытается дать программисту максимальную мощность без ущерба для эффективности времени выполнения. Это означает, что он фокусируется на механизмах времени компиляции во всех их различных формах.
1
ответ
Когда выполняется перебор коллекции с for..in, поддерживаемым в Nim?
Документы для модуля множеств в Nim дают несколько примеров итерации по множеству через items метод: var a = initOrderedSet[int]() for value in [9, 2, 1, 5, 1, 8, 4, 2]: a.incl(value) for value in a.items: echo "Got ", value # --> Got 9 # --> …
03 фев '18 в 23:26
1
ответ
Как преобразовать из одного символа в строку в Nim?
В Nim у меня есть строка, которую нужно разбить на символы, но каждый символ должен быть преобразован в строку. Прямо сейчас у меня есть что-то вроде: var d = initTable[string,int]() for ch in line: d.mgetOrPut(ch, 0) += 1 Это не удается, потому что…
02 дек '18 в 11:56
1
ответ
В чем разница между возвратом void и {.noreturn.}?
В Nim прагма noReturn отмечает процесс, который никогда не возвращается. Чем это отличается от функции, которая возвращает void?
08 сен '17 в 00:08
1
ответ
Как запустить шут на сервере Apache
Я хочу использовать шута в производственном сервере.Однако шут может работать только в Terminal.app с синхронизированной работой.Я хочу знать, как запустить асинхронный шут, как php-pfm. Я написал этот код: import jester, asyncdispatch, json routes:…
21 фев '19 в 04:53
2
ответа
Как я могу получить название процедуры в Nim?
Я пытаюсь написать макрос для отладочной печати на языке Nim. В настоящее время этот макрос добавляет filename а такжеline на выход instantiationInfo(), import macros macro debugPrint(msg: untyped): typed = result = quote do: let pos = instantiation…
08 фев '18 в 13:28
3
ответа
Строковая интерполяция
В scala вы легко включаете содержимое переменной в строку, например так: val nm = "Arrr" println(s"my name is , $nm") Возможно ли это в Nim, и в таком случае как?
17 апр '15 в 16:39
1
ответ
Определение параметров нескольких типов в Nim
Скажем, у меня есть два класса и процедура, которая изменяет любой класс таким же образом. Как мне указать, что параметр может быть классом (вместо перезаписи или перегрузки функции для каждого класса)? Простой пример: type Class1[T] = object x: T C…
28 апр '15 в 04:24
1
ответ
При импорте модуля Nim для привязок Lua появляется сообщение об ошибке: "не удалось загрузить: lua(|5.1|5.0).dll"
Я новичок в языке программирования Nim, и, исходя из опыта Lua, я был рад узнать, что существует модуль для добавления привязок Lua к Nim. Я установил Nimble (менеджер пакетов Nim) для Windows и выполнил "nimble install lua", чтобы загрузить и устан…
23 фев '16 в 07:34
1
ответ
Вызов fzf из nim не показывает fzfs TUI
Я пытаюсь перенести небольшой скрипт на python в nim. Ядро - это вызов fzf: fzf = subprocess.Popen(["fzf"], stdin=subprocess.PIPE, stdout=subprocess.PIPE) stdout, stderr = fzf.communicate(some_data) Насколько я понимаю фзф открытый /dev/tty чтобы вз…
20 авг '18 в 14:24
1
ответ
Как сравнить два typedesc в шаблоне на равенство
Я хотел бы иметь возможность сравнить два typedesc в шаблоне, чтобы увидеть, ссылаются ли они на один и тот же тип (или, по крайней мере, имеют одно и то же имя типа), но не уверен как. == Оператор не позволяет этого. type Foo = object Bar = object …
17 июн '15 в 18:19
1
ответ
Существует ли имя файла по умолчанию, которое можно использовать для импорта модулей?
Что я имею в виду, если есть какое-то стандартное имя, которое можно использовать для основного файла в локальном модуле Nim, чтобы при импорте по пути мы могли просто ссылаться на каталог? Например, сейчас кажется, что мне нужно указать каталог и и…
15 июн '15 в 20:59
1
ответ
Операция логического вектора в стиле R в Nim
Кто -нибудь знает, есть ли в Nim функция типа ifelse в R, которая позволяет применять условные вычисления к векторам, эквивалентную: a<-c(1,2,3,4) b<-c(7,2,7,4) c<-ifelse(a==b,a*b,a+b) использование цикла и оператора if, else будет слишком …
31 окт '18 в 13:12
1
ответ
Ним межпотоковая передача сообщений: Как избежать глобального TChannel?
У меня есть следующий простой пример проблемы связи между потоками: я хочу запускать произвольные алгоритмы "в любое время" в фоновом потоке. Алгоритм в любое время выполняет некоторое вычисление типа результата T постепенно, т. е. время от времени …
29 апр '15 в 18:46
2
ответа
Nim: Как проверить, является ли число с плавающей точкой nan или inf?
Как я могу проверить, является ли переменная с плавающей точкой NaN или же inf, Поиск в стандартной библиотеке для isNaN или же isInf ничего не раскрывает. Есть сообщение в блоге, предлагающее использовать proc cIsNaN(x: float): int {.importc: "isna…
11 фев '17 в 15:27
1
ответ
Разница между const внутри proc и снаружи
Вероятно, это действительно глупый вопрос, но кроме наглядности есть ли реальная разница между const внутри proc против снаружи? const foo = "FOO" proc test() = const bar = "BAR" echo foo & bar test() Например, когда внутри, стек растет и сжимае…
01 апр '15 в 14:11
1
ответ
Проблемы с установкой Babel для Nimrod
У меня проблемы с установкой babel, Сначала я скачал все с GitHub, connor@vader:~$ git clone https://github.com/nimrod-code/babel.git а потом я попытался установить с помощью, connor@vader:~$ nimrod c -r babel/src/babel install но потом я получил эт…
21 мар '14 в 02:44
2
ответа
Распаковать несколько переменных из последовательности
Я ожидаю, что код ниже, чтобы напечатать chr7, import strutils var splitLine = "chr7 127471196 127472363 Pos1 0 +".split() var chrom, startPos, endPos = splitLine[0..2] echo chrom Вместо этого он печатает @[chr7, 127471196, 127472363], Есть ли спосо…
11 авг '15 в 17:22
3
ответа
Безопасно "одолжите" блок памяти другому потоку в C, при условии отсутствия "одновременного доступа"
Эта проблема Я хочу выделить память в одном потоке и безопасно "одолжить" указатель на другой поток, чтобы он мог читать эту память. Я использую язык высокого уровня, который переводится как C. Язык высокого уровня имеет потоки (с неопределенным AP…
03 ноя '17 в 07:41
1
ответ
Канонический способ сделать круговую зависимость в Nim
Предположим, у нас есть два модуля: один определяет Object, а другой определяет ObjectFactory. Объект должен иметь доступ к ObjectFactory и использовать некоторые из его функций, а ObjectFactory нужен доступ к Object, чтобы иметь возможность создава…
14 май '15 в 10:31
1
ответ
Мой треугольник OpenGL имеет неожиданные цвета вершин
Здравствуйте, я нарисовал треугольник opengl, который отлично работал с 3-мя плавающими атрибутами цветовой вершины. Альфа была в шейдере. Сейчас в этой версии я пытаюсь отправить атрибуты цвета с 4 поплавками. Но цвета странные, а третья вершина вс…
03 дек '18 в 21:04