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")

Popular posts from this blog

Difference between Type Stack (S) and Type Queue (Q)

Sin Waves and Cos Waves