Цитата: Vertaler от декабря 28, 2020, 16:53Запишу также код для вычисления промежутка между сегодняшним днём и какой-то ещё датой.
Ним в этом случае понимает речь человеческую.
import times; echo now() - initDateTime(1, mDec, 2020, 0, 0, 0)
from sugar import `->`, `=>`
type B = object
f: (int) -> int
var b = B(f: (a:int) => a*2)
Портит этот кусок кода эстетически всего одна вещь: при создании экземпляра класса все аргументы передаются по именам, без этого вот ваще никак. Но в традиции использования языка входит создание отдельных функций вида initB(), и им уже можно передавать аргументы и просто так. Ну и значения по умолчанию у них тоже могут быть.proc f(n: int64): int64 {.nimcall.} = n * 2
type A = object
ff*: array[1, proc (n: int64): int64 {.nimcall.}]
type B = object
ff: proc(n: int64): int64 {.nimcall.}
var x = A(ff: [f])
echo x.ff[0](11)
var y = B(ff: f)
echo y.ff(12)
Печатает:22
24
from sugar import `=>`
var z = B(ff: q => q * 2)
A nested proc can have generic parameters only when it is used as an operand to another routine and the types of the generic paramers can be inferred from the expected signature.
var z = B(ff: proc(q: int64): int64 {.nimcall.} = q * 2)
echo z.ff(13)
Печатает: 26proc f(n: int64): int64 {.nimcall.} = n * 2 # наш будущий метод
var fl = @[f] # помещаем метод в список
type A = ref object of RootObj # создаём простой класс
ff*: seq[proc (n: int64): int64{.nimcall.}]
# и теперь всё, что этот класс может содержать, — это функции!
var x = A(ff: fl) # создали экземпляр класса
echo x.ff[0](11) # и вызвали "метод"
Цитата: oort от декабря 28, 2020, 20:49Да, в целом согласен. Про инклюды не знал.Цитата: Vertaler от декабря 28, 2020, 06:39
Как вы думаете, в каких случаях питон всё же лучше нима?
В настоящее время -- практически во всех. Ним попросту очень сильно не доделан. С год назад я пытался написать на нем вполне игрушечный проект и уперся в то, что выполнение кода существенно зависит от порядка инклюдов (при том, что при любом порядке код проходит все статические проверки и компилируется). На этом знакомство с нимом я прекратил на неопределенное время.
Цитата: Vertaler от декабря 28, 2020, 06:39
Как вы думаете, в каких случаях питон всё же лучше нима?
Цитата: Vertaler от декабря 28, 2020, 17:10В Руби:
И в Руби это реальные методы интеджеров или там нет такого понятия?
Цитата: wandrien от декабря 28, 2020, 17:08Какая красота! И в Руби это реальные методы интеджеров или там нет такого понятия?
Уперли из RoR?
https://api.rubyonrails.org/classes/Numeric.html
Страница создана за 0.062 сек. Запросов: 24.