This MWE does work which tells me the let operation is correctly defined.
\documentclass{amsart}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\path
let \n1 ={2}
in
coordinate [label= $N$] (B) at (\n1,\n1); %to show that \n1 does work as a value
\draw (0,0) arc [start angle=0, end angle=180, radius=2];
\end{tikzpicture}
\end{document}
\end{document}
The one below differs from that only by using \n1 to specify the radius. But it returns an error message of
! Undefined control sequence. \pgfk@/tikz/x radius ->\n
\documentclass{amsart}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\path
let \n1 ={2}
in
coordinate [label= $N$] (B) at (\n1,\n1); %to show that \n1 does work as a value
\draw (0,0) arc [start angle=0, end angle=180, radius=\n1];
\end{tikzpicture}
\end{document}
\end{document}
As @Zarko says, the syntax of the first picture is not exactly what the manual recommends. But this syntax is working for me in a specific tikzpicture with a much more complicated let operation. Here it is. Notice that commands after the let operation succeed at use thing base on \p1 through \p4 (so I think savenumber might work for me, if I figure out how) but the arc command will not let me use a value \n1:
\documentclass{amsart}
\usepackage{tikz}
\usetikzlibrary{calc,intersections}
\begin{document}
\[
\begin{tikzpicture}
\path % Given endpoints \p1 and \p2 and the placement of the divide everything but the semicircle radius is calculated
let
\p1 = (-2.2,0),
\p2 = (2.2,0),
\p{divide} = ($ (\p1) !.7! (\p2) $),
\p{center} = ($ (\p1) !.5! (\p2) $), % center of the semicircle
\p3 = ($ (\x1,{\x{divide}-\x2}) $),
\p4 = ($ (\x{divide},\y3) $)
in
coordinate [label= left:$B$] (B) at (\p1)
coordinate [label= right:$F$] (F) at (\p2)
coordinate [label= left:$C$] (C) at (\p3)
coordinate [label= right:$D$] (D) at (\p4)
coordinate [label= below right:$E$] (E) at (\p{divide})
coordinate (M) at (\p{center}); %the midpoint M is not labelled in the drawing
\path [name path=R] (E) -- ($(E) + 1*(0,2.5)$);%upper bound here is set by hand
\draw (F) [name path=P] arc [start angle=0, end angle=180, radius=2.2];%radius here is set by hand
\draw [name intersections={of=P and R, by={[label=above:$H$]H}}];
\draw[dashed] (0,0) -- (H);
\draw (B) -- (F) -- (H) --(B) -- (C) -- (D) -- (H); %all the solid straight lines
\end{tikzpicture}
\]
\end{document}
I need this tikzpicture for use in a publication. I could just use it the way I have currently written it and publish. But this version is inelegant because when I want to alter it a little to see what proportions look best I have to recalculate one radius by hand. If there is a way to get arc to accept \n1 as a radius value the same way as ``coordinate'' does does, with this syntax for let, then I will use that.



\n1will not be available in the rest of the picture after the current path withletoperation is finished. In other words, next line with\drawwill not know about the previous\p{}and\n{}macros. – percusse Aug 28 '16 at 10:40\pgfmathsetmacro{\circleradius}{2.2}e.g. at the start of thetikzpicture, and use\circleradiusinstead of2.2everywhere. – Torbjørn T. Aug 28 '16 at 11:35\circleradiusin\p1and\p2as well of course, so you have\p1=(-\circleradius,0),\p2=(\circleradius,0). – Torbjørn T. Aug 28 '16 at 11:40B,C, ...) are defined in one\path let ...block. Or do I miss something? – Zarko Aug 28 '16 at 11:59let.\n1is not valid outside it. by the way, this arc you can named, so as you named other lines. – Zarko Aug 28 '16 at 13:33