> If you haven't taken 6.854, you must have a strong understanding of algorithms at the undergraduate level, such as receiving an A in 6.046, having had a relevant UROP, involvement in computer competitions, etc.
> I skimmed documentation of Python after people told me it was fundamentally similar to Lisp. My conclusion is that that is not so. `read', `eval', and `print' are all missing in Python.
Maybe I'm getting lost in the semantics but doesn't Python have a REPL a la the interpreter?
The point he's stuck on is that the versions of 'read', 'eval', and 'print' in Python aren't the same as the ones in Lisp. In Python, you read a string, eval that string into a value, then print that value. The intermediate representation is a string -- just a bunch of characters. In Lisp, you read a data structure, eval that data structure into another data structure, then print out its form -- nested lists and atoms that you can inspect and manipulate, rather than characters that you need to parse to do anything useful with.
I can't agree with this more. Coming from C/C++, I was hindered by worrying about memory management and building everything from scratch. Python and its standard library just allowed me to wrap my head around algorithms.
It's C#. I'm not familiar with it which is why I was surprised that after downloading Visual Studio Tools, I opened Developer Command Prompt, I did a `csc *.cs` and I was left with one nice executable, Main.exe.
Is this only appropriate for the case where we want to iterate over all the elements? Don't we lose the O(1) access using a name? I'm assuming you're making 2 arrays.
Yes. My point is to consider what is actually required before making complex structures. It is often perfectly acceptable to combine two existing types and handle what few interactions they actually have.
Quite the pre-reqs...