Zulip Chat Archive
Stream: new members
Topic: Understanding a basic error.
Will King (Dec 12 2023 at 22:36):
I was working through this example of programming in Lean 4 https://lean-lang.org/functional_programming_in_lean/hello-world/cat.html
I got to this function
def fileStream (filename: System.FilePath) : IO (Option IO.FS.Stream) := do
if not filename.pathExists then
let stderr ← IO.getStderr
stderr.putStrLn s!"File not found: {filename}"
pure none
else
let handle IO.FS.handle.mk filename IO.FS.Mode.read
pure (some (IO.FS.Stream.ofHandle handle))
I get an error unexpected token '('; expected ')'
based on that last line. The highlighted error in VS code suggests it is the second opening parenthesis (some _(_
that is causing the issue.
The questions I have are:
- What is going on and how can I address this issue?
- Where can I find resources to diagnose issues such as this? My initial search on duckduckgo wasn't very helpful so I'd love any resources people can point me to.
Patrick Massot (Dec 12 2023 at 22:41):
I think the previous line looks fishy.
Kyle Miller (Dec 12 2023 at 22:41):
It looks like your let
is missing an ←
or :=
Kyle Miller (Dec 12 2023 at 22:46):
According to the original fileStream
in the book, it's missing an arrow after handle
Will King (Dec 12 2023 at 23:00):
Thanks so much. That was the problem.
Last updated: Dec 20 2023 at 11:08 UTC