`let(path,`F')':     `line':
let(path,`FRRFRRF'): `snowflake':
let(depth,3):

func(sweep,{sub({
  let(a,[x]):let(b,[y]):let(c,[z]):let(r,`'):
  print_for(<i,1,len([a]),1>,{block({
    let(d,mid([a],[i],1)):
    iff([d]=[b],{let(r,[r]+[c])},{let(r,[r]+[d])}):
    print_()})}):print_[r]})}):

[depth]:do:let(path,sweep([path],`F',`FLFRRFLF')):loop:

let(turtle,<0,0,0>):
let(pi,4*atan(1)):
func(crawl,{
  <elem([x],1) + ([y])*cos(elem([x],3)*[pi]/180),
   elem([x],2) + ([y])*sin(elem([x],3)*[pi]/180),
   elem([x],3)>}):
func(swivel,{
  <elem([x],1),
   elem([x],2),
   elem([x],3) + [y]>}):
func(fwd,{let(turtle,crawl([turtle],[x]))}):
func(lft,{let(turtle,swivel([turtle],[x]))}):
func(rgt,{let(turtle,swivel([turtle],[x]))}):

print_scatter(smooth(<sub({
  print_for(<i,1,len([path]),1>,{block({
  iff(mid([path],[i],1)=`F',{fwd(2)}):
  iff(mid([path],[i],1)=`L',{lft(60)}):
  iff(mid([path],[i],1)=`R',{rgt(-60)}):
  print_<reduce($({[x],[y]}),left([turtle],2))>,
  })})})>),
  40,40,-1)