funciton helloworld() { echo "hello, world!" }
この式のhelloworldは関数です。そして、echoは関数ではなく、言語構造です。これらの違いは何でしょうか?
……見るからに形が違いますね。関数は名前のあとに()、その後{}に処理の内容を書く、という書き方が予め決まっていますが、言語構造にはそうした決まりはありません。つまり、echo文をこのように書くことも出来ます。
echo ("hello, world!")
言語構造は、関数とは違ってどうやら「ハードコード」されているものらしいです。予め組み込まれていると考えてよいようです。