on master help sign in
slag
2a7326eiko
nock/src/jets.rs+19
@@ -49,6 +49,7 @@ pub fn generate_jets() -> Jets {
49 (68845187332605602565057027619381114427, SKID),
49 (68845187332605602565057027619381114427, SKID),
50 (51010231444191054729255601633316498529, SKIM),
50 (51010231444191054729255601633316498529, SKIM),
51 (144878877047435484372311285666595397017, SKIP),
51 (144878877047435484372311285666595397017, SKIP),
52+ (22344664364706022641079203486385841813, SLAG),
52 ])
53 ])
53}
54}
54
55
@@ -407,3 +408,21 @@ static SKIP: Jet = |ctx, n| {
407 .cloned(),
408 .cloned(),
408 )
409 )
409};
410};
411+
412+static SLAG: Jet = |ctx, n| {
413+ let (a, list) = n.as_cell().unwrap();
414+
415+ let mut a_iter = a.as_atom().unwrap().iter_u32_digits();
416+
417+ match a_iter.len() {
418+ 0 => list,
419+ 1 => Noun::list_refs(
420+ list.list_iter()
421+ .skip(a_iter.next().unwrap() as usize)
422+ .collect::<Vec<_>>()
423+ .iter()
424+ .cloned(),
425+ ),
426+ _ => ctx.nouns.sig.clone(),
427+ }
428+};