私はより機能的なスタイルの言語でプログラミングを行っており、タプルや、マップやフォールド/アグリゲートなどの高階関数などを高く評価するようになりました。VHDLまたはVerilogのいずれかに、これらの種類の構造のいずれかがありますか?
HDLは、これらの種類の純粋なコンビネータの完璧なアプリケーションのようです。これらのコンビネータは、Haskell、F#、LINQなどの命令型プロセスによってシミュレートされているだけですが、ハードウェアは実際にはクロックティック間の純粋な機能です。
一見すると、どちらの言語も奇妙なことに命令型に見えます。私には、命令型CPUアプリケーションが関数型言語で記述され始めているのに対し、関数型HDLコードは命令型のスタイルで記述されているのは奇妙に思えます。
とにかく、問題は、次のような単純なことでも行う方法はありますか?
divByThreeCount = count (\x -> x `mod` 3 == 0) myArray
また
myArray2 = map (\x -> x `mod` 3) myArray
または、さらに良いことに、これらの言語のいずれかで、自分の高レベルの構成を再帰的に定義させてください。そうでない場合、どの言語が最も近いですか?
どちらの言語もその方向に進むことを計画しているようですか?それとも、HDLの新人である私が考えるほど、これは本当に役に立たないのでしょうか。