คำถามติดแท็ก pure-function

9
เป็นฟังก์ชันที่เรียก Math.random () บริสุทธิ์หรือไม่?
ต่อไปนี้เป็นฟังก์ชันบริสุทธิ์หรือไม่? function test(min,max) { return Math.random() * (max - min) + min; } ความเข้าใจของฉันคือฟังก์ชันบริสุทธิ์เป็นไปตามเงื่อนไขเหล่านี้: ส่งคืนค่าที่คำนวณจากพารามิเตอร์ มันไม่ทำงานอื่นใดนอกจากการคำนวณมูลค่าที่ส่งคืน ถ้าคำจำกัดความนี้ถูกต้องฟังก์ชันของฉันเป็นฟังก์ชันบริสุทธิ์หรือไม่ หรือความเข้าใจของฉันเกี่ยวกับสิ่งที่กำหนดฟังก์ชันบริสุทธิ์ไม่ถูกต้อง?

6
ฟังก์ชั่นที่บริสุทธิ์:“ ไม่มีผลข้างเคียง” หมายถึง“ ผลลัพธ์เดียวกันเสมอให้อินพุตเดียวกัน” หรือไม่?
เงื่อนไขสองประการที่กำหนดฟังก์ชันpureดังต่อไปนี้: ไม่มีผลข้างเคียง (เช่นอนุญาตให้เปลี่ยนแปลงขอบเขตเฉพาะที่เท่านั้น) ส่งคืนเอาต์พุตเดียวกันเสมอโดยให้อินพุตเดียวกัน หากเงื่อนไขแรกเป็นจริงเสมอมีบางครั้งเงื่อนไขที่สองไม่เป็นจริงหรือไม่? คือจำเป็นจริงๆกับเงื่อนไขแรกหรือไม่?

5
เหตุใด println จึงถือว่าเป็นฟังก์ชันที่ไม่บริสุทธิ์
ฉันกำลังอ่านการเขียนโปรแกรมหนังสือในรูปแบบสกาล่าและได้มีการกล่าวว่า: ... ในกรณีนี้ผลข้างเคียงของมันคือการพิมพ์ไปยังสตรีมเอาต์พุตมาตรฐาน และฉันไม่เห็นว่าผลข้างเคียงอยู่ที่ใดเพราะสำหรับอินพุตเดียวกัน println จะพิมพ์เอาต์พุตเดียวกัน (ฉันคิดว่า) อัปเดต ทุกครั้งที่เราเรียกว่า: println(5) มันจะพิมพ์5ฉันไม่เห็นกรณีที่การโทรprintln(5)จะพิมพ์ค่าอื่นที่ไม่ใช่ 5 !!
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.