3.1.1 introduction-to-functional-programming
Summary
TLDRこのスクリプトは、クラスでの講義や法的機関でのフォーマルな言語と日常会話でのカジュアルな言語の使い方の違いから、コンピュータ言語におけるプログラミングパラダイムの多様性について説明しています。特に、関数型プログラミング(FP)とオブジェクト指向プログラミング(OOP)の二つのパラダイムに焦点を当て、データと関数の明確な区別、データの関数外での存在、および関数によるデータ操作について説明しています。通貨変換のコード例を通じて、関数型プログラミングの実践的応用が示されています。
Takeaways
- 📚 フォーマル言語とカジュアル言語の使い分け:教室での講義や法的機関での会話はフォーマルで、文法規則を守り、複雑な語彙を使用。
- 🗣️ 人間の日常会話はスラングが多く、文法規則を曲げたり破ったり、会話は口語的。
- 🌐 人間の言語には多くのスタイルがあり、全ては同じ機能、すなわちコミュニケーションを果たす。
- 💻 コンピュータ言語も同様に様々なスタイル、すなわちプログラミングパラダイムを持っており、異なるアプローチを提供。
- 🔄 機能プログラミングとオブジェクト指向プログラミング(FPとOOP)は、プログラミングの2つの一般的なパラダイム。
- 📊 データと関数の明確な区別:関数プログラミングでは、データは関数から独立して存在できる。
- 🔢 関数の定義と引数の渡し方:関数は引数を介してデータを受け取り、処理結果を返す。
- 🏦 オブジェクト指向プログラミングでは、データと関数はオブジェクトに結合される。
- 💰 通貨変換の例:関数プログラミングを使って、通貨の交換レートを計算する実用的な例。
- 📈 カーソルケースでの変数の宣言:CamelCase(キャメルケース)を使用し、最初の単語は小文字、それ以降は大文字。
- 📊 関数のテストとデバッグ:関数の実行結果をコンソールにログ出力することで、プログラムの正しさを確認する。
Q & A
レクチャーでの言語使用はどのようにして正式的呢?
-レクチャーでの言語使用は、文法規則が遵守され、構文と語彙がトピックに基づいて非常に複雑になることが一般的です。
フォーマル言語が使用される他の場面にはどのようなものがありますか?
-フォーマル言語は、裁判所やその他の法的機関などで使用されることがあります。
日常会話においてスラングが存在する理由は何ですか?
-日常会話では、文法規則が変形されることが多く、カジュアルなトーンで話すことが一般的です。そのため、スラングやカジュアルな表現が使用されます。
コンピュータ言語におけるスタイルの違いは何を指しますか?
-コンピュータ言語におけるスタイルの違いは、プログラミングパрадиグムと呼ばれます。これらはコードを書く際の異なるアプローチを指し、コンピュータに操作を実行する結果は同じになります。
関数型プログラミングとオブジェクト指向プログラミングの違いは何ですか?
-関数型プログラミングでは、データと関数が明確に分離され、データは関数の外側に存在することができます。一方、オブジェクト指向プログラミングでは、データと関数がオブジェクトに組み合わされています。
関数型プログラミングにおけるデータと関数の関係はどのようになっていますか?
-関数型プログラミングでは、データと関数との間に明確な境界があります。データは関数の外側に存在し、関数は与えられたデータに基づいて計算を実行します。
通貨変換プログラムの例で使用された変数名の命名規則は何ですか?
-通貨変換プログラムの例では、変数名がCamelCaseという命名規則を使用しています。これは、最初の単語の最初の文字を小文字にし、その後の単語の最初の文字を大文字にするものです。
通貨変換関数 `convertCurrency` はどのように定義され、どのような仕事をしていますか?
-通貨変換関数 `convertCurrency` は、2つの引数、amountとrateを受け入れる関数です。関数の体内では、引数として与えられた金額を率で掛け合わせた結果を返します。
通貨変換プログラムで `currencyTwo` の値を更新するためにどのような手順が取られましたか?
-通貨変換プログラムでは、`currencyTwo` の値を更新するために、`convertCurrency` 関数の結果を `currencyTwo` に代入しました。また、必要な2つの引数(`currencyOne` と `exchangeRate`)を渡すことで、関数が正しく動作するようにしました。
プログラムの最後に `currencyTwo` の値を出力するためにどのような手法が使用されましたか?
-プログラムの最後に、`currencyTwo` の値をコンソールにログ出力するために `console.log` 関数が使用されました。これにより、通貨変換の結果である120がコンソールに表示されます。
このレッスンで学んだ関数型プログラミングの利点は何ですか?
-このレッスンで学んだ関数型プログラミングの利点は、データと関数の分離により、問題を解決するための柔軟性とコードのメンテナンス性を高めることです。
Outlines
📚 フォーマル言語とプログラミングパラダイム
このパラグラフでは、フォーマル言語と日常言語の違いを探求し、それがプログラミング言語にどのように当てはまるかを説明しています。講義での言語はフォーマルで複雑ながら、日常言語はスラングや規則の自由な使用が特徴です。同様に、プログラミング言語にはさまざまなスタイル、つまりプログラミングパラダイムが存在します。代表的な二つのパラダイム、関数型プログラミング(FP)とオブジェクト指向プログラミング(OOP)が紹介され、それぞれのスタイルが異なるアプローチを提供することが説明されています。これらはコンピュータに操作を指示するという同じ目的を果たします。本レッスンでは、関数型プログラミングに焦点を当てています。
Mindmap
Keywords
💡formal language
💡colloquial
💡programming paradigms
💡functional programming
💡object-oriented programming
💡data and functions
💡CamelCase
💡currency conversion
💡variables
💡functions
💡arguments
💡console log
Highlights
Language used in a lecture is formal, adhering to grammar rules and complex syntax based on the topic.
Formal language is also used in legal institutions such as courts.
Everyday conversational language is full of slang and often bends or breaks grammar rules, being more colloquial.
Human languages have various styles, all serving the same function of communication.
Computer languages, like human languages, have different styles known as programming paradigms.
Functional programming (FP) and object-oriented programming (OOP) are two commonly used programming paradigms.
No programming paradigm is inherently better than the other; they are just different approaches to writing code.
Functional programming distinguishes clearly between data and functions, allowing data to exist outside of functions.
In functional programming, data is passed to functions as arguments, which then perform operations and return values.
Object-oriented programming combines data and functions into objects.
The lesson focuses on functional programming and its practical implementation.
A coding example is provided to demonstrate a currency conversion using functional programming.
Variables are declared with CamelCase naming convention in the example, starting with a lowercase letter and subsequent words starting with uppercase.
The 'convertCurrency' function is defined, taking 'amount' and 'rate' as parameters and returning their multiplication.
The value of 'currencyTwo' is updated using the result of the 'convertCurrency' function, demonstrating the use of functions in manipulating data.
The 'currencyOne' and 'exchangeRate' variables are passed to the 'convertCurrency' function to perform the currency conversion calculation.
The final result of the currency conversion is logged to the console, showcasing the practical application of functional programming in solving a problem.
The lesson concludes by emphasizing the separation of data from functions in functional programming as an effective problem-solving approach.
Transcripts
When you listen to a lecture in class,
the language used is probably very formal.
Grammar rules are observed,
and syntax and vocabulary can
get quite complex based on the topic.
Some other examples of the use of
formal language can be found in
courts and other legal institutions.
Now let's consider the way people
talk in their everyday life.
There's lots of slang,
grammar rules are bent and broken,
and the entire delivery is colloquial.
There are many styles in every human language,
and they all perform
the exact same function, communication.
The same can also be said about computer languages.
They too have various styles,
also known as programming paradigms.
Just like in human languages,
no one style is better suited than the other.
In programming, there are two commonly used paradigms.
Functional programming, sometimes abbreviated as FP,
and object-oriented programming,
sometimes abbreviated as OOP.
You can think of these paradigms as
different approaches to writing code.
But the result is still the same,
instructing a computer to perform a set of operations.
In this lesson, you will
learn about functional programming.
Let's now focus on the functional programming style.
There is a clear distinction
between data and functions in
functional programming as data
can exist outside of functions.
For example, you may recall that when functions need
some data you pass them
the values in the form of arguments.
Then the function perform some work
on the given data and returns
some values that you can then
use somewhere else in your program.
An alternative paradigm is
the object-oriented programming paradigm,
where you combine both data and functions into objects.
You'll learn more about
object oriented programming later.
Now let's examine a practical implementation of
the functional programming style using
a coding example to calculate currency conversion.
In this example of functional programming,
let me start by giving my program some data.
The purpose of the program is
to perform currency conversions.
Notice that I already have a variable declared with
the name currencyOne and assigned it the value of 100.
Next, I'll add two more variables, currencyTwo,
which is assigned a value of 0,
and exchangeRate, which is set to 1.2.
Notice that I have declared
all these variable names using CamelCase.
This is where the first letter of
the first word is lowercase and
the first letter of the subsequent words are
without spaces and in uppercase.
Next, I can create the function that will
work with these variables and operate on this data.
First, I create a function named
convertCurrency that accepts two parameters,
amount and rate.
Then in the function's body,
I returned the result of
the amount multiplied by the rate.
Basically, I'm coding it to multiply
the two values it receives and return the result.
Next, I need to update the value of currencyTwo,
which was previously defined on line four,
assigned to the value of 0.
To do this, I assign the value of
currencyTwo to the result of the function I just created.
Recall that when the function is invoked,
it will return a value which will be
assigned to the variable currencyTwo.
It's important to remember that I need to also
pass the two arguments required for my function to work.
In this example, I'm sending
the variables currencyOne and exchangeRate.
Basically, I'm passing the values 100 and
1.2 to the function so it
can perform its calculation and return the result.
Finally, I console log the value
of currencyTwo to test my code.
Success, 120 is output to the console,
the result of 100 multiplied by 1.2.
In this lesson, you learned about
functional programming and how it can be used
to solve a problem by separating
data from functions. Great job.
5.0 / 5 (0 votes)