Just wanna let you know that Lisp is the superior programming language. I'll explain why.
"Lisp? Isn't it a disease?" Lisp stands for LISt Processing (code in Lisp is literally a list. Like 1 + 2 + 3 + 4 + 5 + 6 + 7 would be (+ 1 2 3 4 5 6 7), which seems weird but uses 3 less characters), and it's an old language that was used in AI and forged some important programming language concepts such as garbage collection and functional programming. Some of it's core features though aren't available yet in most modern languages, which is what makes it not only worthwhile, but the best.
Now you may say stuff like "there is no best language! Each language suits for some task and not others!" or even stuff like "It's subjective". And ok obviously if you need assembler you can't use Lisp and often the same goes for c.
However it is much more powerful than those languages, more than python, java and whatever ones you love, so if incredible speed isn't needed, you can just use it.
Why is lisp the best? I could bring up lots of stuff (from repl to the debugger), but let me just point at perhaps the most distinctive future: Macros. Not the stupid c ones. Much much more powerful.
What are macros? They are functions executed at compile time which return code which is replaced into the places where the macro is called. Whoa, reread it slowly. Still don't understand? That's ok
I'll tell you what that means. It means you can have code which writes code. And that means that all those times you copypasted code only to change a variable name wouldn't be necessary in Lisp. It also means you can create new syntax. New syntax leads to completely new sub-languages called dsl (domain specific languages) which make Lisp suitable basically for any purpose.
"Nobody needs those.. Marcos. They are useless in The Real World(Tm)" Yeah sure. Fun fact: in Lisp objective oriented programming is fully implemented with macros. Plus for example gui or networking are areas where an additional layer of abstraction wouldn't hurt. You could create html inside of lisp, but of course you will create something much more powerful. Check out Arc if you're curious about some examples of that.
Imagine being able to write a language specific for your problem. Would help quite a bit wouldn't it? Instead of using dozens of functions with ugly arguments.
So yeah, check it out. Might turn you from a coding monkey into a good programmer, even if you end up rarely using it afterwards. Because it affects the way you THINK about code.
module Just_gonna_dump_this_here ( a ,b ,sel ,dout );
output [3:0] dout ;
reg [3:0] dout ;
input [3:0] a ;
wire [3:0] a ;
input [3:0] b ;
wire [3:0] b ;
input sel ;
wire sel ;
reg [4:0] s;
wire [3:0] l; integer i;
assign l = b ^ {sel,sel,sel,sel};
always @ (a or b or sel) begin
s[0] = sel;
for (i=0;i<=3;i=i+1) begin
dout[i] = a[i] ^ l[i] ^ s[i];
s[i+1] = (a[i] & l[i]) | (l[i] & s[i]) | (s[i] & a[i]);
end
end
endmodule