on master help sign in
slag
commit2a7326e19d7e07334959e0bc8af04fd05718c264 authoriko <mail@iko.soy> dateFri 23 Aug 2024, 16:58 (2 years ago) parent1f374dd
1 file changed+19
nock/src/jets.rs+19
nock/src/jets.rs+19
@@ -49,6 +49,7 @@ pub fn generate_jets() -> Jets {
4949 (68845187332605602565057027619381114427, SKID),
5050 (51010231444191054729255601633316498529, SKIM),
5151 (144878877047435484372311285666595397017, SKIP),
52+ (22344664364706022641079203486385841813, SLAG),
5253 ])
5354}
5455
@@ -407,3 +408,21 @@ static SKIP: Jet = |ctx, n| {
407408 .cloned(),
408409 )
409410};
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+};