mirror of
https://github.com/HigherOrderCO/Kind.git
synced 2024-10-03 18:27:13 +03:00
fix long-switch
This commit is contained in:
parent
4639202430
commit
65d9b7c6c4
6
book/U60.fib.kind2
Normal file
6
book/U60.fib.kind2
Normal file
@ -0,0 +1,6 @@
|
||||
fib (n: U60) : U60 =
|
||||
switch n {
|
||||
0: 0
|
||||
1: 1
|
||||
_: (+ (fib (- n 1)) (fib (- n 2)))
|
||||
}
|
@ -4,11 +4,8 @@
|
||||
|
||||
//use Nat.{succ,zero}
|
||||
|
||||
_main (n: U60) : U60 =
|
||||
switch n {
|
||||
0: 0
|
||||
_: n-1
|
||||
}
|
||||
_main : U60 =
|
||||
(U60.fib 6)
|
||||
|
||||
//_main (a: Nat) (b: Nat) (e: (Equal A a b)) : (Equal A a b) =
|
||||
//switch a {
|
||||
|
@ -297,7 +297,7 @@ impl<'i> KindParser<'i> {
|
||||
val: Box::new(Term::Var { nam: format!("{}-1", nam) }),
|
||||
bod: val,
|
||||
});
|
||||
for i in (0..(cases.len())).rev() {
|
||||
for i in (1..(cases.len())).rev() {
|
||||
let x = Box::new(Term::Var { nam: format!("{}-1", nam.clone()) });
|
||||
let z = cases[i].clone();
|
||||
let s = val;
|
||||
@ -305,6 +305,7 @@ impl<'i> KindParser<'i> {
|
||||
val = Box::new(Term::Swi { nam: nam.clone(), x, z, s, p });
|
||||
}
|
||||
val = Box::new(Term::Swi { nam, x, z: cases[0].clone(), s: val, p });
|
||||
//println!("SWITCH:\n{}", val.show());
|
||||
return Ok(Term::Src { src, val });
|
||||
}
|
||||
|
||||
|
@ -149,15 +149,15 @@ impl Term {
|
||||
Show::text("*")
|
||||
},
|
||||
Term::U60 => {
|
||||
Show::text("#U60")
|
||||
Show::text("U60")
|
||||
},
|
||||
Term::Num { val } => {
|
||||
Show::text(&format!("#{}", val))
|
||||
Show::text(&format!("{}", val))
|
||||
},
|
||||
Term::Op2 { opr, fst, snd } => {
|
||||
Show::call(" ", vec![
|
||||
Show::glue("", vec![
|
||||
Show::text("#("),
|
||||
Show::text("("),
|
||||
opr.format(),
|
||||
]),
|
||||
Show::glue("", vec![
|
||||
|
Loading…
Reference in New Issue
Block a user