To Functional Programming with Python
To Functional Programming with Python
I rewrote the previous code to below as functional Python.
Gemini(Google AI) helped me, and it taught me important things.
To convert from procedural to functional is difficult for me.
The convertion needs a lot of my brain resouces.
So from the beginning, I will try to functional programinng with Python...
import numpy as np
import matplotlib.pyplot as plt
# データ生成
x = np.linspace(-3.15, 3.15, 100)
def plot_waves(x, wave_func, title):
"""
指定された関数に基づいて複数の波を生成し、描画する関数。
Args:
x (np.array): x軸のデータ。
wave_func (function): 使用する波の関数 (np.sin または np.cos)。
title (str): グラフのタイトル。
"""
plt.figure(figsize=(8, 6))
base_wave = wave_func(x)
# 振幅を半分にし、正負を反転させて波を生成
current_wave = base_wave
for i in range(10):
if i % 2 == 0:
# 偶数番目: 正の波
plt.plot(x, current_wave, label=f'Wave {i+1}')
else:
# 奇数番目: 負の波
plt.plot(x, -current_wave, label=f'Wave {i+1}')
# 次の波の振幅を半分にする
current_wave /= 2
plt.xlabel("x")
plt.ylabel("y")
plt.title(title)
plt.legend()
plt.grid(True)
plt.show()
# Sin Waves
plot_waves(x, np.sin, "Sin Waves")
# Cos Waves
plot_waves(x, np.cos, "Cos Waves")