3 ms·
Yes and no. That particular example can indeed be type-checked without extra annotations (unless I want to indicate that the use-case of the variable is actuall
by ghostwriter 4y ago
Yes and no. That particular example can indeed be type-checked without extra annotations (unless I want to indicate that the use-case of the variable is actually immutable). But consider I slightly modify the script:
def main() -> None:
words = []
for word in (words + ["Hello"]):
print(word)
if __name__ == '__main__':
main()
MyPy rejects to infer the type of the iterable. Here's an equivalent Haskell version that does infer the type without manual annotations:
import Data.Foldable (for_)
main = do
let words = []
for_ (words ++ ["Hello"]) (\word -> print word)
- tejinderss 4y agotypescript can infer it too: function main() { let words = []; for (const word of [...words, 'Hello']) { console.log(word); } }