- Javascript işlevsel bir dil midir? Nesneleri olduğunu biliyorum ve onunla birlikte OOP de yapabilirsin, ama aynı zamanda işlevsel bir dil mi, bu şekilde kullanılabilir mi?
- OOP'un programlamadaki bir sonraki evrime nasıl dönüştüğünü / nasıl göründüğünü biliyorsunuz, bu, 'İşlevsel Programlamanın' bir sonraki evrim olduğu anlamına gelir (Not: Bu, görüşün bir sorusu DEĞİLDİR, ANCAK; moderatörler için katılımcılardan daha fazla;)).
- Örnekler aracılığıyla en iyisini öğreniyorum, belki birileri aynı görevi OOP yönteminde ve sonra da İşlevsel Programlama biçiminde yerine getirerek işlevsel programlamanın ne yaptığını / karşılaştırdığını gösterebilir.
Dürüst olmak gerekirse 'İşlevsel Programlamayı' gerçekten anlamıyorum: P Javascript'i işlevsel programlama ile karşılaştırmak tamamen yanlış olabilir.
Fonksiyonel programlamayı laymans terimleriyle koymak: basitçe anonim fonksiyonlar kullanarak BÜYÜKTÜRÜNÜ soyutlamanın yararı mı?
Yoksa bu yol çok mu basit? Basit bir şekilde, OOP, nesnelerden soyutlamanın yararıdır, ancak OOP'yi tanımlamak için çok basit olduğuna inanıyorum.
Bu, işlevsel bir programlamanın iyi bir örneği midir?
Javascript OOP Örneği:
// sum some numbers
function Number( v )
{
this.val = v;
}
Number.prototype.add( /*Number*/ n2 )
{
this.val += n2.val;
}
İşlevsel programlama örneği:
function forEach(array, action)
{
for (var i = 0; i < array.length; i++)
action(array[i]);
}
function add(array)
{
var i=0;
forEach(array, function(n)
{
i += n;
});
return i;
}
var res = add([1,9]);
Or is that way too simple?
Yeap, öyle. Anonim işlevler, bazen işlevsel dilleri ve işlevsel programlamayı destekleyen çoklu paradigma dilleriyle ilişkilidir, ancak işlev dillerinin benzersiz bir özelliği değildir. Fakat eğer onları cal-hesabının bir uygulaması olarak görüyorsanız, bunlar fonksiyonel programlamanın temel bir parçası, asıl nokta o kadar basit değil :)
I know it has objects & you can do OOP with it also
Hayır yapamazsın. Sınıf ve nesne arasındaki ayrımı ortadan kaldıran prototip tabanlı programlama. Şahsen prototip tabanlı programlamanın bu temel seviyede hatalı olduğunu düşünüyorum.