Hem dinamik hem de fonksiyonel bir programlama dilinde körelme ve değişken işlevler sunmayı düşünüyorum, ancak bunun mümkün olup olmadığını merak ediyorum.
İşte bazı sözde kod:
sum = if @args.empty then 0 else @args.head + sum @args.tail
ki bu da onun tüm argümanlarını özetliyor. Sonra, sum
kendisine bir sayı tedavi edilirse, sonuç olur 0
. Örneğin,
sum + 1
+
yalnızca sayılarda çalışabileceği varsayılarak 1'e eşittir . Bununla birlikte, sum == 0
doğru bile olsa , sum
kaç argüman verilirse verilsin değerini ve işlevsel özelliğini koruyacaktır (dolayısıyla "kısmen uygulanır" ve "değişken" aynı anda), örneğin, beyan edersem
g = sum 1 2 3
Sonra g
eşittir 6
, ancak, yine de daha da uygulayabilirsiniz g
. Örneğin g 4 5 == 15
, doğrudur. Bu durumda, nesneyi g
bir değişmezle değiştiremeyiz 6
, çünkü bir tamsayı olarak işlendiğinde aynı değeri vermelerine rağmen, içinde farklı kodlar içerirler.
Bu tasarım gerçek bir programlama dilinde kullanılıyorsa, karışıklığa veya belirsizliğe neden olur mu?
sum
bir 0
bağımsız değişken olmayan ve tekrar eden bir bağımsız değişken ile çağırır.
reduce
mi?
args
: empty
, head
, ve tail
. Bunların hepsi liste işlevleridir, belki daha kolay ve daha basit bir şeyin varyasyonlu şeylerin olacağı bir liste kullanmak olabileceğini düşündürmektedir. (Bunun sum [1, 2, 3]
yerine sum 1 2 3
)