mirror of
https://github.com/ilyakooo0/urbit.git
synced 2025-01-04 13:19:48 +03:00
Implement jet for ++swp.
This commit is contained in:
parent
5189295d02
commit
b8712677ea
@ -43,6 +43,11 @@
|
|||||||
u3_noun
|
u3_noun
|
||||||
u3kc_rip(u3_atom a, u3_atom b);
|
u3kc_rip(u3_atom a, u3_atom b);
|
||||||
|
|
||||||
|
/* u3kc_swp(): reverse block order.
|
||||||
|
*/
|
||||||
|
u3_noun
|
||||||
|
u3kc_swp(u3_atom a, u3_atom b);
|
||||||
|
|
||||||
/* u3kd: tier 4 functions
|
/* u3kd: tier 4 functions
|
||||||
*/
|
*/
|
||||||
/* u3kdb_get(): map get for key `b` in map `a` with u3_none.
|
/* u3kdb_get(): map get for key `b` in map `a` with u3_none.
|
||||||
|
@ -66,6 +66,7 @@
|
|||||||
u3_noun u3qc_rep(u3_atom, u3_noun);
|
u3_noun u3qc_rep(u3_atom, u3_noun);
|
||||||
u3_noun u3qc_rip(u3_atom, u3_atom);
|
u3_noun u3qc_rip(u3_atom, u3_atom);
|
||||||
u3_noun u3qc_rsh(u3_atom, u3_atom, u3_atom);
|
u3_noun u3qc_rsh(u3_atom, u3_atom, u3_atom);
|
||||||
|
u3_noun u3qc_swp(u3_atom, u3_atom);
|
||||||
u3_noun u3qc_sqt(u3_atom);
|
u3_noun u3qc_sqt(u3_atom);
|
||||||
u3_noun u3qc_vor(u3_atom, u3_atom);
|
u3_noun u3qc_vor(u3_atom, u3_atom);
|
||||||
|
|
||||||
|
@ -66,6 +66,7 @@
|
|||||||
u3_noun u3wc_rep(u3_noun);
|
u3_noun u3wc_rep(u3_noun);
|
||||||
u3_noun u3wc_rip(u3_noun);
|
u3_noun u3wc_rip(u3_noun);
|
||||||
u3_noun u3wc_rsh(u3_noun);
|
u3_noun u3wc_rsh(u3_noun);
|
||||||
|
u3_noun u3wc_swp(u3_noun);
|
||||||
u3_noun u3wc_sqt(u3_noun);
|
u3_noun u3wc_sqt(u3_noun);
|
||||||
u3_noun u3wc_vor(u3_noun);
|
u3_noun u3wc_vor(u3_noun);
|
||||||
|
|
||||||
|
39
jets/c/swp.c
Normal file
39
jets/c/swp.c
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
/* j/3/swp.c
|
||||||
|
**
|
||||||
|
*/
|
||||||
|
#include "all.h"
|
||||||
|
|
||||||
|
/* functions
|
||||||
|
*/
|
||||||
|
|
||||||
|
u3_noun
|
||||||
|
u3qc_swp(u3_atom a,
|
||||||
|
u3_atom b)
|
||||||
|
{
|
||||||
|
//XX write a proper c-style swp, maybe
|
||||||
|
return u3kc_rep(u3k(a), u3kb_flop(u3qc_rip(a, b)));
|
||||||
|
}
|
||||||
|
|
||||||
|
u3_noun
|
||||||
|
u3wc_swp(u3_noun cor)
|
||||||
|
{
|
||||||
|
u3_noun a, b;
|
||||||
|
|
||||||
|
if ( (c3n == u3r_mean(cor, u3x_sam_2, &a, u3x_sam_3, &b, 0)) ||
|
||||||
|
(c3n == u3ud(a)) ||
|
||||||
|
(c3n == u3ud(b)) )
|
||||||
|
{
|
||||||
|
return u3m_bail(c3__exit);
|
||||||
|
} else {
|
||||||
|
return u3qc_swp(a, b);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
u3_noun
|
||||||
|
u3kc_swp(u3_atom a,
|
||||||
|
u3_atom b)
|
||||||
|
{
|
||||||
|
u3_noun res = u3qc_swp(a, b);
|
||||||
|
u3z(a); u3z(b);
|
||||||
|
return res;
|
||||||
|
}
|
@ -512,6 +512,7 @@ static u3j_core _143_tri_d[] =
|
|||||||
static u3j_harm _143_two_rep_a[] = {{".2", u3wc_rep, c3y}, {}};
|
static u3j_harm _143_two_rep_a[] = {{".2", u3wc_rep, c3y}, {}};
|
||||||
static u3j_harm _143_two_rip_a[] = {{".2", u3wc_rip, c3y}, {}};
|
static u3j_harm _143_two_rip_a[] = {{".2", u3wc_rip, c3y}, {}};
|
||||||
static u3j_harm _143_two_rsh_a[] = {{".2", u3wc_rsh, c3y}, {}};
|
static u3j_harm _143_two_rsh_a[] = {{".2", u3wc_rsh, c3y}, {}};
|
||||||
|
static u3j_harm _143_two_swp_a[] = {{".2", u3wc_swp, c3y}, {}};
|
||||||
static u3j_harm _143_two_sqt_a[] = {{".2", u3wc_sqt, c3y}, {}};
|
static u3j_harm _143_two_sqt_a[] = {{".2", u3wc_sqt, c3y}, {}};
|
||||||
static u3j_harm _143_two_vor_a[] = {{".2", u3wc_vor, c3y}, {}};
|
static u3j_harm _143_two_vor_a[] = {{".2", u3wc_vor, c3y}, {}};
|
||||||
static u3j_harm _143_two_xeb_a[] = {{".2", u3wc_xeb, c3y}, {}};
|
static u3j_harm _143_two_xeb_a[] = {{".2", u3wc_xeb, c3y}, {}};
|
||||||
@ -618,12 +619,14 @@ static u3j_core _143_two_d[] =
|
|||||||
{ "rub", _143_two_rub_a },
|
{ "rub", _143_two_rub_a },
|
||||||
{ "peg", _143_two_peg_a },
|
{ "peg", _143_two_peg_a },
|
||||||
{ "pow", _143_two_pow_a },
|
{ "pow", _143_two_pow_a },
|
||||||
|
{ "swp", _143_two_swp_a },
|
||||||
{ "sqt", _143_two_sqt_a },
|
{ "sqt", _143_two_sqt_a },
|
||||||
{ "vor", _143_two_vor_a },
|
{ "vor", _143_two_vor_a },
|
||||||
{ "xeb", _143_two_xeb_a },
|
{ "xeb", _143_two_xeb_a },
|
||||||
|
|
||||||
{ "by", 0, _143_two__by_d },
|
{ "by", 0, _143_two__by_d },
|
||||||
{ "in", 0, _143_two__in_d },
|
{ "in", 0, _143_two__in_d },
|
||||||
|
{}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -73,6 +73,7 @@ jets_c_src = [
|
|||||||
'jets/c/rep.c',
|
'jets/c/rep.c',
|
||||||
'jets/c/rip.c',
|
'jets/c/rip.c',
|
||||||
'jets/c/rsh.c',
|
'jets/c/rsh.c',
|
||||||
|
'jets/c/swp.c',
|
||||||
'jets/c/sqt.c',
|
'jets/c/sqt.c',
|
||||||
'jets/c/vor.c',
|
'jets/c/vor.c',
|
||||||
]
|
]
|
||||||
|
Loading…
Reference in New Issue
Block a user