Bir koşullu işlev için, APL lehçelerinin herhangi birinde bir sembol veya iyi bilinen bir deyim var mı?Koşullu işlev APL'de
Eminim ki bir şey kaçırmıyorum, çünkü bu temel bir dil öğesi. Diğer dillerde koşullu operatör olarak adlandırılır, ancak burada bir terimden kaçınacağım, çünkü bir APL operatörü tamamen farklı bir şey.
örnek C içinve arkadaşları x ? T : F
LISPs (if x T F)
Python vb T if x else F
ve sahip olması gerekir.
Modern APL'lerin :If
ve arkadaşlarına sahip olduğunu biliyorum, ancak bunlar program akışını kontrol etmek için zorunlu ifadelerdir: bir değer döndürmezler, bir ifadede kullanılamazlar ve kesinlikle boole dizilerine uygulanamazlar. Tamamen farklı bir amacı var, bu benim için iyi.
Ben işlevsel bir seçim yapmak ile gelebilir sadece iyi ifade özellikle steno veya bana okunabilir görünmüyor (F T)[⎕IO+x]
olduğunu bile diziler üzerinde, işi alır rağmen:
('no' 'yes')[⎕IO+(⍳5)∘.>(⍳5)]
no no no no no
yes no no no no
yes yes no no no
yes yes yes no no
yes yes yes yes no
Ben ⌷
kadrosunu kullanarak benzer bir ifade ile geldim, ama booleans dizileri üzerinde sefil başarısız oldu. Yapabilseydim bile, ⎕IO
veya kodlanmış bir 1 gömmek zorundaydı, ki bu da okunabilirlik söz konusu olduğunda daha da kötü.
Devam etmeden ve kendi if
'u tanımlamadan önce ve yazacağım her programda kullanmadan önce, bu konuda herhangi bir kanon var mı? Açık bir fonksiyon veya operatör eksik mi?
(SO üzerinde herhangi APL programcıları var mı? :-)
Vb a b c ilgili dillerin ifadeleri APL ifadesi ise. sıfırda endeks kökenli bana anlamda bir çok yapar bu yüzden, bir C alt yapıdan gelir ama "APL şekilde" karşı gelmek istemiyordu Iverson kağıtları – Tobia
Ton kökenini sıfır boyunca varsayalım. Ne yaptığınızı basitleştiriyorsa geçerli bir seçimdir. –