Watch and track your favorite playlist.
Curated by: Xah Lee (862 videos)
Video Summary (Generated by AI, Edited by Human.) discuss the design of function named parameters in programming languages (0:17). And discuss dynamic vs strong typed languages. • terminology. Arguments vs. Parameters (1:41): “arguments” are passed when calling a function, while “parameters” are used when defining a function. • Named Parameters in Functional Programming (3:55): pure functional programming languages should not support named parameters. Instead, they should accept a key-value collection as a single optional last parameter (4:09). AI's Role in Research (2:49): use grok AI to research programming language design questions, such as: • Whether Haskell has named parameters (6:58). • Alternative names for named parameters (7:22). • Syntax for named parameters across various languages (7:52). • The design of named parameters in functional and mathematical programming languages (8:56). Functional vs. Mathematical/Scientific Languages (12:02): The video highlights a distinction: Mathematical/scientific programming languages (like R, Mathematica/Wolfram Language, Julia) commonly use named parameters (12:29) due to functions having many optional arguments (12:40). Pure functional programming languages (like Haskell, OCaml, F#) rarely use named parameters (13:42) because they interfere with currying and higher-order function composition (13:55), concepts rooted in mathematical functions (14:19). • Critique of Python's Parameter Design (18:11): disapproval of Python's function parameter design, calling it “extremely idiotic” and “convoluted” (18:46). • JavaScript and Perl's Argument Handling (27:00): discusses how JavaScript (using the arguments object) and Perl (using $_ array) historically handled arbitrary arguments without explicit parameter declarations, noting these designs are generally considered bad (29:07). JavaScript introduced a “rest parameter” syntax in 2015 to address this (33:39). • Static vs Dynamic Typing (44:36): The speaker discusses the debate between static and dynamic typing. explains C/C++/Java's static typing is idiotic (56:51), and fundamentally different from strongly typed functional languages like Haskell (rooted in mathematical type theory) (53:02). • The speaker expresses uncertainty about which overall approach to typing is "better" (56:42).