สร้างอาชีพของคุณด้วย Currying ใน Scala

เผยแพร่แล้ว: 2020-07-06

สารบัญ

บทนำสู่สกาล่า

Scala ซึ่งเป็นภาษาโปรแกรมมิ่งได้รับการพัฒนาโดย Martin Odersky และกลุ่มวิจัยของเขาในปี 2546 การพัฒนา Scala เป็นการปฏิวัติโลกแห่งข้อมูลขนาดใหญ่ มันเป็นภาษาที่แข็งแกร่งและมีค่าอย่างยิ่งที่จะเปลี่ยนแปลงโลกสำหรับคนรุ่นต่อ ๆ ไป เป็นแบบคอมไพเลอร์ ซึ่งทำให้รวดเร็วและเชี่ยวชาญมาก

ช่องว่างที่สำคัญของ Scala คือ Java Virtual Machine (JVM) รหัส Scala ถูกรวบรวมครั้งแรกโดยคอมไพเลอร์ Scala และสร้างรหัสไบต์สำหรับสิ่งที่เทียบเท่า ซึ่งจะถูกย้ายไปยัง Java Virtual Machine เพื่อสร้างผลตอบแทน ตลอดแนวเหล่านี้ Scala กลายเป็นหนทางไปสู่ความก้าวหน้าในการจัดการกับการวัดขนาดมหึมาของข้อมูลขนาดใหญ่

ทำไม Scala ถึงเพ้อฝันมากในชุมชนการเขียนโปรแกรม?

Scala มีเหตุผลมากกว่าสองสามข้อที่จะเป็นที่ชื่นชอบของโปรแกรมเมอร์หลายๆ คน มาพูดคุยกันสองสามคนที่นี่

เป็นภาษาหลากกระบวนทัศน์

Scala มีความสามารถเพียงพอที่จะสนับสนุนกระบวนทัศน์การเขียนโปรแกรมสองแบบ ได้แก่ Functional Programming (FP) และ Object-Oriented Programming (OOP)

ไวยากรณ์สั้น ๆ

คอมไพเลอร์ใน Scala หรือที่เรียกว่า Scala นั้นมีความสามารถอย่างมากและสามารถทำงานได้มากกว่าที่คุณคาดหวัง หากต้องการตั้งชื่อบางสิ่ง มันสามารถทำให้เกิด hasCode(), equals(), toString() และอื่นๆ

เรียนง่าย

เนื่องจาก Scala รองรับการเขียนโปรแกรมเชิงวัตถุ จึงเป็นเรื่องง่ายที่จะเรียนรู้สำหรับโปรแกรมเมอร์เมื่อเปรียบเทียบกับ Java ด้วยชุมชนออนไลน์ที่เติบโตอย่างรวดเร็ว ฟอรัม Scala กำลังเกิดขึ้นอีกเรื่อยๆ ส่วนสำคัญของสิ่งนี้คือเพราะมีไลบรารีที่ดีพร้อมกับไวยากรณ์ที่เรียบร้อย ในขณะที่โปรแกรมเมอร์พยายามหาทางผ่านการเขียนโปรแกรมเชิงฟังก์ชันและเรียนรู้ พวกเขายังคงสามารถใช้ทักษะการเขียนโปรแกรมเชิงวัตถุที่มีอยู่แล้วและสร้างสิ่งต่างๆ ใน ​​Scala ได้

เรียนรู้: Python เป็นภาษาเชิงวัตถุหรือไม่

โอกาสในการทำงานใหม่

เนื่องจากความสามารถในการปรับขนาดได้มหาศาล ทำให้ปัจจุบัน Scala เป็นที่ต้องการมากขึ้นเรื่อยๆ ในอุตสาหกรรม ด้วยแบรนด์ชั้นนำอย่าง Twitter, Quora, LinkedIn และอื่น ๆ ที่ย้ายมาที่ Scala เห็นได้ชัดว่าพวกเขาต้องการผู้เข้ารหัสที่มีทักษะใน Scala อีกไม่นาน Scala จะกลายเป็นความต้องการชั่วโมงสำหรับบริษัทรายใหญ่อื่นๆ ในอุตสาหกรรมอื่น

พิมพ์คงที่

คอมไพเลอร์ Scala ใช้การอนุมานประเภทอย่างสุดความสามารถ และด้วยเหตุนี้ถึงแม้จะให้ความรู้สึกเป็นพลวัต แต่ Scala ก็มีการพิมพ์แบบสแตติกอย่างมีระเบียบ ซึ่งช่วยให้สามารถอนุมานประเภทสำหรับตัวแปรและฟังก์ชันใน Scala

ตอนนี้เราเข้าใจแล้วว่า Scala คืออะไร มาทำความเข้าใจ การแกงใน Scala กัน

แกงกะหรี่ในสกาลา

Currying ได้รับการตั้งชื่อตามนักคณิตศาสตร์ชาวอเมริกัน Haskell Curry ซึ่งเป็นที่รู้จักจากผลงานของเขาในด้านตรรกะเชิงผสมผสาน

แกงกะหรี่ในสกาลา สามารถกำหนดเป็นกลยุทธ์ที่อยู่เบื้องหลังการตีความการประเมินของฟังก์ชันที่รับข้อโต้แย้งต่าง ๆ เพื่อประเมินกลุ่มของฟังก์ชัน โดยแต่ละรายการมีฟังก์ชันเดี่ยว

ทางคณิตศาสตร์เราสามารถเขียนได้ดังนี้ -

f1 = ฉ(ก)

f2 = f1(b)

ผลลัพธ์ = f2(c)

และรหัสเทียมสำหรับสิ่งนี้จะเป็น -

ผลลัพธ์ = f(a)(b)(c)

ไวยากรณ์ของ Currying

ไวยากรณ์ที่ใช้สำหรับดำเนินการ currying ใน Scala ถูกกล่าวถึงดังนี้:

def คูณ(a:Int)(b:Int) = a*b

นอกจากนี้ยังสามารถเขียนได้ดังต่อไปนี้:

def คูณ (a:Int) = (b:Int) => a*b

อ่าน: เงินเดือนนักพัฒนา Java ในอินเดีย: สำหรับ Freshers & มีประสบการณ์

วิธีการเรียกฟังก์ชั่นการแกง

ในการเรียกฟังก์ชันการแกงใน Scala เราต้องกำหนดค่าให้กับตัวแปร ' a' และ ' b' ที่กล่าวถึงในสมการข้างต้น

ฟังก์ชันที่ใช้บางส่วนคืออะไร?

แหล่งที่มา

เมื่อเรียกใช้ฟังก์ชัน จะมีการดำเนินการเพื่อใช้ฟังก์ชันกับชุดอาร์กิวเมนต์ ในกรณีที่คุณผ่านอาร์กิวเมนต์ที่คาดการณ์ไว้ทั้งหมด คุณจะใช้ฟังก์ชันนี้อย่างเต็มที่ เมื่อคุณส่งอาร์กิวเมนต์เพียงสองสามข้อ คุณจะได้รับฟังก์ชันที่ใช้บางส่วนกลับคืนมา วิธีนี้ช่วยให้คุณจำกัดข้อโต้แย้งสองสามข้อและกรอกส่วนที่เหลือในภายหลัง

ตัวอย่างของฟังก์ชันที่ใช้บางส่วน –

ขั้นตอนที่ 1: กำหนดฟังก์ชันด้วยพารามิเตอร์หลายตัว

สกาล่า> def บวก (a: int) (b: int) = a + b

บวก: (a: int)(b: int)int

ขั้นตอนที่ 2: ให้เฉพาะค่าสำหรับตัวแปร ' สกาล่า> def X = X(2)(_)

X: int => int

ผลลัพธ์ที่นี่สร้างฟังก์ชันใหม่ 'X' ของประเภท int => int

ในที่นี้ X สามารถเขียนได้ดังนี้

def X(b:int) = 2 + b

สิ่งที่สมการข้างต้นแสดงให้เห็นคือเมื่อ X ถูกเพาะด้วยค่า int เริ่มต้นเป็น 2 มันจะนั่งรอค่า int อื่นที่มันสามารถเพิ่มเข้าไปได้

ฟังก์ชันที่ใช้บางส่วนจะให้ความสามารถดังต่อไปนี้โดยสรุป

  • คุณเขียนฟังก์ชันทั่วไป
  • คุณสร้างฟังก์ชันเฉพาะจากฟังก์ชันทั่วไป
  • คุณจะสามารถเข้าถึงทั้งสองฟังก์ชันได้แม้ทุกอย่าง
  • คุณทำให้โค้ดของคุณแห้งเพราะคุณไม่จำเป็นต้องคัดลอกและวางโค้ดเพื่อสร้างฟังก์ชันใหม่

อ่านเกี่ยวกับ: 27 คำถามและคำตอบสัมภาษณ์ Scala ยอดนิยมสำหรับผู้เริ่มต้น

การเปรียบเทียบฟังก์ชั่นการแกงและการใช้งานบางส่วน (PAF)

Currying และ PAFs มีความเกี่ยวข้องกันอย่างใกล้ชิด ฟังก์ชันการแกงและการใช้งานบางส่วนอาจดูเหมือนเท่ากัน – ทั้งสองแปลงฟังก์ชันของคุณให้เป็นฟังก์ชันที่มีอาร์กิวเมนต์น้อยกว่า อย่างไรก็ตาม มีความแตกต่างระหว่างพวกเขา

  • Currying ใน Scala จะสร้างฟังก์ชัน unary หรือ 1-ary ที่ซ้อนกันอย่างสม่ำเสมอ ฟังก์ชันที่เปลี่ยนไปจึงยังคงคล้ายกับฟังก์ชันแรกในระดับที่ดี
  • แอปพลิเคชันบางส่วนสร้างฟังก์ชันของจำนวนอาร์กิวเมนต์ตามอัตวิสัย ฟังก์ชันที่เปลี่ยนแปลงนั้นไม่เหมือนกับฟังก์ชันแรก โดยต้องการอาร์กิวเมนต์น้อยกว่าเมื่อเปรียบเทียบกับฟังก์ชันแรก
  • Currying ใน Scala ไม่ใช่แอปพลิเคชันบางส่วน แต่สามารถดำเนินการได้อย่างดีในการใช้แอปพลิเคชันบางส่วน คุณไม่สามารถใช้แกงกับฟังก์ชันได้หากไม่ได้ใช้พารามิเตอร์จำนวนคงที่ มันจะไม่ทำงานสำเร็จเป็นอย่างอื่น

กรอบงานสกาล่า

ต่อไปนี้คือกรอบงาน Scala ที่โดดเด่นบางส่วนที่คุณสามารถตรวจสอบเพื่อทำความเข้าใจ Scala ได้ดี -

เล่นกรอบงาน

ลิฟท์เว็บ

กะลากรอบ

นี่คือช่วงเวลาในประวัติศาสตร์ที่ประตูทุกบานถูกเปิดออกสู่คนรุ่นปัจจุบันอย่างแท้จริงเพื่อเรียนรู้และไล่ตามสิ่งที่พวกเขาต้องการ มีสถาบัน ผู้ให้คำปรึกษา บริการ ฯลฯ ที่แตกต่างกันเพื่อให้เกิดการเรียนรู้และให้การตรวจสอบในรูปแบบขององศาและใบรับรอง

ยิ่งไปกว่านั้นคือตอนนี้สามารถทำได้จากความสะดวกสบายในห้องนอนของตัวเอง คุณ pGrad การ เป็นผู้เล่นชั้นนำในอุตสาหกรรมนี้ได้ปฏิวัติระบบการศึกษาทีละหลักสูตร ตั้งแต่ MBA ไปจนถึงกฎหมาย ไปจนถึงประกันภัย ไปจนถึงวิทยาศาสตร์ข้อมูล upGrad สามารถทำลายอุปสรรคทั้งหมดของการศึกษาร่วมสมัย และทำให้เกิดคลื่นแห่งการปฏิวัติในภาคการศึกษา

ห่อ

หากต้องการดูหลักสูตรของเราในวงกว้างหรือเพื่อทำความเข้าใจว่าเราทำในสิ่งที่เราทำ อย่าลังเลที่จะ ขอโทรกลับ หรือตรวจสอบ เว็บไซต์ ของ เรา

หากคุณสนใจที่จะทราบข้อมูลเพิ่มเติมเกี่ยวกับโปรแกรม Big Data ให้ตรวจสอบ PG Diploma in Software Development Specialization ในโปรแกรม Big Data ซึ่งออกแบบมาสำหรับมืออาชีพที่ทำงานและมีกรณีศึกษาและโครงการมากกว่า 7 กรณี ครอบคลุมภาษาและเครื่องมือในการเขียนโปรแกรม 14 รายการ ในการประชุมเชิงปฏิบัติการ ความช่วยเหลือด้านการเรียนรู้และการจัดหางานอย่างเข้มงวดมากกว่า 400 ชั่วโมงกับบริษัทชั้นนำ

เรียนรู้ หลักสูตรการพัฒนาซอฟต์แวร์ ออนไลน์จากมหาวิทยาลัยชั้นนำของโลก รับโปรแกรม Executive PG โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโท เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว

ปรมาจารย์ด้านเทคโนโลยีแห่งอนาคต - Big Data

โปรแกรมประกาศนียบัตรขั้นสูงด้าน Big Data จาก IIIT Bangalore