Нет, не можешь.
Точно также, как не можешь на любом другом языке - это такой design choice, чтобы нельзя было какой-то потенциально вредоносный или тормознутый код в datapack впихнуть.
Логику в датапаке ты можешь описывать только при помощи команд, как в командных блоках.
А для различных часто-используемых вещей, таких как: крафт, лут, блоки, предметы, мобы, и генерация мира присутствуют уже готовые шаблоны, где ты можешь декларативно описать свой рецепт или блок, например.
По сути, в датапаке ты "программируешь" при помощи написания json-конфигов :)