Kategori loop 'untuk'

11

Saya ingat sekali membaca beberapa penelitian di mana tubuh kode C telah dianalisis, dan temuan adalah bahwa sebagian besar dari forloop bisa dikategorikan ke dalam lima kategori, sesuai dengan setara fungsional map, filter, fold, dll

Sepertinya saya tidak dapat menemukan makalah / artikel ini lagi. Adakah yang bisa mengarahkan saya ke sana?

tukang kayu
sumber
3
Saya menemukan sesuatu yang serupa pada stack overflow: stackoverflow.com/a/2647704/1009414 Mungkin di sana Anda akan menemukan beberapa info tentang artikel ini.
Thaven
1
homomorphisms, catamorphisms dan anamorphisms dll mungkin bernilai google, untuk loop yang tidak ada dalam daftar
jk.

Jawaban:

11

Ini bukan pencocokan tepat untuk apa yang Anda minta, tapi saya pikir itu cukup dekat dengan akar pertanyaan Anda.

Halaman situs ini di Loops membahas sejumlah pola pengulangan.

  • perhitungan
  • jumlah yang difilter
  • mengumpulkan
  • terakumulasi-menumpuk
  • Cari
  • ekstrim
  • indeks ekstrim
  • Saring
  • peta
  • mengocok
  • menggabungkan
  • membatu
  • kondisi terjawab

Mereka juga memiliki halaman tentang Rekursi yang mencakup banyak pola yang sama secara rekursif.


sumber
14
... Saya berharap loop "ekstrem" akan lebih, yah, ekstrem ...;)
Izkata
0

Saya pikir saya sudah mendengarnya juga. Di suatu tempat di SICP-video atau buku saya pikir saya mendengar bahwa sebagian besar (jika tidak semua) program / algoritma dapat diekspresikan menggunakan aliran dan filter. Streaming dimulai pada kuliah 6A.

Adapun semua loop (untuk, sementara, lakukan-sementara dan sebagainya) semuanya diimplementasikan dengan label, bandingkan dan lompatan bersyarat sehingga mereka hanya gula sintaksis untuk membuatnya lebih mudah dibaca dan dipahami.

Sylwester
sumber