Size: a a a

2018 November 22

V

Vladimir in ru.nim.talks
fn get_partitionr(ss: &Vec<i32>) -> Vec<Vec<Vec<i32>>> {
   // println!("ss={:?}", ss);
   if ss.len() <= 1 {
       let r = vec![vec![(*ss).clone()]];
       return r;
   }

   let mut res: Vec<Vec<Vec<i32>>> = vec![vec![vec![]]];
   let to_max = 2_i32.pow(ss.len() as u32) / 2;
   // println!("to_max={:}", to_max);
   let mut i = 0;
   let mut ii = 0;
   while i < to_max {
       // println!("i={:}", i);
       ii = i;
       let ss_len = ss.len() as usize;
       let mut parts = vec![Vec::with_capacity(ss_len),Vec::with_capacity(ss_len)];
       for item in ss.iter() {
           parts[(ii & 1) as usize].push(*item);
           ii >>= 1;
       }

       let bb = get_partitionr(&parts[1].clone());
       for b in bb.iter() {
           let mut c: Vec<Vec<i32>> = Vec::with_capacity(b.len() as usize);
           c.push(parts[0].clone());
           if b[0].len() > 0 {
               for el in b.iter() {
                   c.push(el.to_vec());
               }
           }
           // println!("c={:?}", c)
           if res[0][0].len() == 0 {  // it was hard to detect this place to avoid wrong vals
               res[0] = c; // replace initial empty val
           } else {
               res.push(c);
           }
       }
       i += 1;
   }
   res
}

fn main() {
   println!("rust version");
   let part = vec![1_i32, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
   let lr = get_partitionr(&part);
   println!("{:}", lr.len());
   println!("lr={:?}", &lr[0..10])
}
источник

V

Vladimir in ru.nim.talks
тут память сразу выделяется где можно оценить
источник

V

Vladimir in ru.nim.talks
удалю тот код на расте, он не нужен
источник

V

Vladimir in ru.nim.talks
MIT/Benzands
всё-таки лучше бы на форуме написал :D
может напишу, да
источник

YG

Yuriy Glukhov in ru.nim.talks
Vladimir
может напишу, да
👍
источник

ZK

Zhenya Katataev in ru.nim.talks
ребят, можете подсказать? как например из строки в инт преревести?
источник

M

Max in ru.nim.talks
parseInt из модуля strutils
источник

ZK

Zhenya Katataev in ru.nim.talks
а можно как-нибуть исправить это(чтобы не nimnode, а bool)?:
код:
import typetraits
import macros

macro test(temp:bool):untyped =
 discard
 echo temp.type.name

test(true)
вывод:
NimNode
источник

M

MIT/Benzands in ru.nim.talks
Zhenya Katataev
а можно как-нибуть исправить это(чтобы не nimnode, а bool)?:
код:
import typetraits
import macros

macro test(temp:bool):untyped =
 discard
 echo temp.type.name

test(true)
вывод:
NimNode
в макросах по умолчанию всегда NimNode
источник

M

MIT/Benzands in ru.nim.talks
если ты хочешь что-то передать как параметр макроса в компайл-тайме, то вроде бы static[bool] нужно
источник

ZK

Zhenya Katataev in ru.nim.talks
спасибо
источник

M

Max in ru.nim.talks
если напишешь конкретную задачу, то возможно тебе подскажут более гуманный способ реализации
источник

ZK

Zhenya Katataev in ru.nim.talks
Max
если напишешь конкретную задачу, то возможно тебе подскажут более гуманный способ реализации
я изучаю язык. пробую решить разные задачки
источник

M

MIT/Benzands in ru.nim.talks
Zhenya Katataev
я изучаю язык. пробую решить разные задачки
ну просто далеко не для каждой задачки нужны макросы)
источник

ZK

Zhenya Katataev in ru.nim.talks
я понимаю, но я набераюсь опыта для решение одной задачи, которая в будущем мне не плохо поможет
источник

YG

Yuriy Glukhov in ru.nim.talks
Макрухи это фан :) Одна из первых фич, которую ковыряют, чтоб оценить потенциал языка :) сужу по себе.
источник

M

MIT/Benzands in ru.nim.talks
Yuriy Glukhov
Макрухи это фан :) Одна из первых фич, которую ковыряют, чтоб оценить потенциал языка :) сужу по себе.
ну в большинстве языков её нет. Мне ещё смешно когда люди, которые говорят, что типа эта фича не важна (во всяких срачах и т.д), не знают просто, на что она способна
источник

ZK

Zhenya Katataev in ru.nim.talks
+
источник

YG

Yuriy Glukhov in ru.nim.talks
Да, я говорю с точки зрения с++, и D. Я до нима сидел на D, так что был уже довольно балованый в плане метапрогр. :)
источник

M

MIT/Benzands in ru.nim.talks
А чего с D ушёл?) вот @datamanim (кстати давно его не видел) тоже с D на ним перешёл
источник