Oleg'in ve Asai'nin "mankenler için" sınırlandırılmış sürekliliklerini inceliyorum (http://pllab.is.ocha.ac.jp/~asai/cw2011tutorial/main-e.pdf) fakat bu çalışma vardiya/sıfırlamayı kullanıyor Oleg'in delimcc'inde mevcut olan istemi maddeleri yerine formalizm. Bu yüzden birkaç sorum var:Vardiya/sıfırlama delimcc'e nasıl çevrilir?
Her şeyden önce, bir komut nedir? Ve neden shift
ve diğer işlevler? Alt-denetimin ne olduğunu bilmek güzel olurdu ama ben sadece kağıttan geçmek istediğim için bunu atlamaya razıyım. Ayrıca, shift
ve shift0
arasındaki fark nedir ve kağıtta shift
'a nasıl karşılık gelirler.
Ayrıca, delimcc içinde reset
nedir? Benim hislerim, new_prompt
ve push_prompt
'un bir şekilde reset
'a karşılık geldiğini söylüyor. Ama burada da bazı açıklamalara ihtiyacım var.
DÜZENLEME: Basit bir örneği kağıttan çevirebildim ve sezgilerim doğru çıktı. Ancak, farklılıkların gerçek bir açıklamasını istiyorum ve neden delimcc olduğu gibi.
reset (fun() -> 3 + shift (fun _ -> 5 * 2) - 1)
Delimcc: Burada herkes
Kağıt ilgilendiği durumda her iki sürümü var
let _ = let open Delimcc in
let np = new_prompt() in
push_prompt np (fun() -> 3 + (shift np (fun _ -> 5 * 2)) - 1)
Sıfırlama/sıfırlama? Bu kavramı aşina değilim. – Strawberry
SO'da [oleg] etiketi yok mu? – dubiousjim
“Vardiya” operatörünün kısmi değerlendirme için sözdizimsel şeker uyguluyormuş gibi görünüyor. Yani, 'vardiya' bir argümana sahiptir, fakat dolaylı olarak yapılır, ve onun eklenmesi onun yanında bedende bir alt çizgi ile gösterilir. Birisi vardiya/sıfırlama konsepti ile uğraşıyorsa, bu ek şeker bir zorluk katmanı ekleyebilir. – Kaz