While playing around with bash and sh, I found out that the following is valid in bash:
system.out.println () { printf "$1"; }
but not in sh:
sh: `system.out.println': not a valid identifier
Why would this difference be there? Does the function defined above violate some convention (POSIX etc.) that causes this error?