[obsidian] vault backup: 2023-08-26 18:27:50[
This commit is contained in:
		@@ -12,6 +12,9 @@ http://www.is.ocha.ac.jp/~asai/jpapers/ppl/asai14.pdf
 | 
				
			|||||||
メタプログラミングのための時相論理に基づく型付 λ 計算 湯瀬 芳洋 五十嵐 淳
 | 
					メタプログラミングのための時相論理に基づく型付 λ 計算 湯瀬 芳洋 五十嵐 淳
 | 
				
			||||||
http://www.fos.kuis.kyoto-u.ac.jp/~igarashi/papers/pdf/lambdaCB-PPL05.pdf
 | 
					http://www.fos.kuis.kyoto-u.ac.jp/~igarashi/papers/pdf/lambdaCB-PPL05.pdf
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					筑波大学 論理と計算(2)
 | 
				
			||||||
 | 
					http://www.cs.tsukuba.ac.jp/~kam/lecture/gairon2-2012/gairon2.pdf
 | 
				
			||||||
 | 
					
 | 
				
			||||||
λ○: nextとprevを導入
 | 
					λ○: nextとprevを導入
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[MetaML](https://www.sciencedirect.com/science/article/pii/S0304397500000530) nextとprevに加えてrunを導入
 | 
					[MetaML](https://www.sciencedirect.com/science/article/pii/S0304397500000530) nextとprevに加えてrunを導入
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,3 +11,52 @@
 | 
				
			|||||||
## 基礎知識
 | 
					## 基礎知識
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[[Coqの勉強]]
 | 
					[[Coqの勉強]]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## mimiumと多段階計算
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					こういうのが計算できなかった
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```rust
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					fn filterbank(N,input,lowestfreq, margin,Q,filter){
 | 
				
			||||||
 | 
					    if(N>0){
 | 
				
			||||||
 | 
					        return filter(input,lowestfreq+N*margin,Q)
 | 
				
			||||||
 | 
					                +  filterbank(N-1,input, lowestfreq,margin,Q,filter)
 | 
				
			||||||
 | 
					    }else{
 | 
				
			||||||
 | 
					        return 0
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					仮に多段階計算だとしてちょっと型を明示してみる
 | 
				
			||||||
 | 
					まあ〜書きづらいよな
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```rust
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					fn gen_filterbank(N:int,lowestfreq:float, margin:float,Q:float,filter:<float->float>)-> <float->float> {
 | 
				
			||||||
 | 
						// level:0
 | 
				
			||||||
 | 
					    if(N>0){
 | 
				
			||||||
 | 
					        < //level:1
 | 
				
			||||||
 | 
					        |x| {
 | 
				
			||||||
 | 
					        filter(x,~(lowestfreq+N*margin),~(Q))
 | 
				
			||||||
 | 
					             + ~( //level:0
 | 
				
			||||||
 | 
							       gen_filterbank(N-1,x, lowestfreq,margin,Q,filter)
 | 
				
			||||||
 | 
							       )
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        >
 | 
				
			||||||
 | 
					                
 | 
				
			||||||
 | 
					    }else{
 | 
				
			||||||
 | 
					         <|x|{0}>
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					fn filterbank(input:float, N:int,lowestfreq:float, margin:float,Q:float,filter:<float->float>)-> floÏat{
 | 
				
			||||||
 | 
						~(gen_filterbank(N,lowestfreq,margin,filter))(input)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					filter同士の足し算を`+`の`infix`でやりたいよねえ
 | 
				
			||||||
 | 
					let多相じゃないよなあこれは
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user