172 похожих чатов

Наткнулся на какую-то очень неприятную проблему. Есть макрос такого подобного вида: macro_rules!

impl_ {
($size:literal) => {
fn test<T>(f: impl FnMut(usize) -> T) -> [T; $size] {
// ???
}
}
}

На месте // ???, по хорошему надо написать [f(0), f(1), ..., f($size - 1)], но в реальности я не смог понять как такое реализовать.

Хотел переделать seq! макрос, чтобы он работал с экспрешенами, но наткнулся на кучу проблем (к примеру то что не получается захватить f :( )

так-же была идея сделать для маленьких размеров тупо копипастой, а для больших заполнять через цикл [MaybeUninit<T>; $size], но непонятно как вызвать drop при панике для элементов, которые вернули предыдущие методы. (catch_unwind в std, а мне бы хотелось обойтись core, а условный Guard: Drop не работает т.к. мне нужно из него этот массив потом достать, а из : Drop типа такое нельзя)

В общем если будут идеи — пишите, а то уже совсем загнался с этой проблемой

1 ответов

5 просмотров

А что не так с [f(0), ... f($size-1)]?

Похожие вопросы

Обсуждают сегодня

А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
Подскажите, где смотреть результат выполнения программы? Код: ;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, станда...
Егор Анелькин
5
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, стандартный ;вызов процедуры ;option casemap:no...
Егор Анелькин
1
почому оно не работает?
Vi Chapmann Chapmann
19
Так а кто может спарсить всех участников чата? Идишники
Magic
18
Есть вопрос: допустим есть железка с каким-то интерфейсом(допустим usb), но как по этому интерфейсу железкой управлять неизвестно, прог нету, а управлять очень хочется надо. К...
Mixail Frolov
15
а как ловят такое ghci> res <- getPos2 urlt 0 (alist !! 0) 200 ghci> res SearchAtom (Search "www.google.com" "/search?q=" "Haskell") "haskell.org" (SearchTS [(2024-05-06 07:...
Fedor
14
всем привет почти закончил курс После него можно писать свою операционку? Какие библиотеки надо использовать и куда дальше копать для изучения
Linus
13
Карта сайта