The reason why it isn't working is because the "scroll" function you're defining is being defined in a variable, while "animatescroll" is a jQuery plugin method.
You can solve this issue the way you want by extending the jQuery object yourself:
$.fn.scroll = ->
this.animatescroll({scrollSpeed:1500,easing:'easeInOutSine'})
$(".a").click ->
$("body").scroll()
$(".b").click ->
$("#b").scroll()
$(".c").click ->
$("#c").scroll()
$(".d").click ->
$("#d").scroll()
It should work. However, I don't recommend this because you're adding a method to the jQuery object with hard-coded parameters, and it may interfere with any jQuery plugins you may have added that already add a "scroll" method to the jQuery object.
The way I'd rather go about solving your issue is to make a variable for the parameter and keep using the animatescroll method, like this:
scrollSettings = scrollSpeed:1500, easing:'easeInOutSine'
$(".a").click ->
$("body").animatescroll scrollSettings
$(".b").click ->
$("#b").animatescroll scrollSettings
$(".c").click ->
$("#c").animatescroll scrollSettings
$(".d").click ->
$("#d").animatescroll scrollSettings