Problem updating a variable in a loop

can u explain me briefly what u have done in this

square = for contour <- contours, reduce: 0 do
  acc ->
    {:ok,peri} = OpenCV.arcLength(contour,true)
    {:ok,approx} = OpenCV.approxPolyDP(contour, 0.01 * peri,true)
    ap=OpenCV.Nx.to_nx(approx)
    {len,_,_}=Nx.shape(ap)

    if len==4 do #to bound squares from the countor
      {:ok,{x1, y1, w, h}}= OpenCV.boundingRect(approx)
      aspectRatio = (w/1)/h
      if aspectRatio >= 0.95 and aspectRatio <= 1.05 and (y1+h)*(x1+w) < 985000 do
        acc + 1
      else
        acc
      end
    end
end

so that in further code if i will face problem regarding this i can rectify it